Для чего нужна Ruby ThreadGroup?

Я кивнул в Pickaxe, ища документацию на Thread и наткнулся на ThreadGroup.

Документация описывает, что она делает, но не объясняет, для чего она предназначена.

Является ли группа потоков связана с пулом потоков, который я предположил, что Ruby не имеет?

Ответ 1

Новые потоки создаются в их родительской ThreadGroup. Вы можете использовать ThreadGroup для организации неявной древовидной структуры, заданной родительскими потоками, порождающей другие потоки, и использовать метод экземпляра list, чтобы получить все потоки, которые еще не завершены, т.е. определить методы, работающие со всеми потоками в группе.

Дополнительно, вы можете использовать enclose, чтобы запретить добавлять (или удалять) потоки в эту группу, если вы запускаете ненадежный код и хотите следить за потоками, которые он порождает.