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