Minoru
у меня онтопик, все в машину^W^W^W. Я создаю worker threads, и мне хотелось бы потом их аккуратно завершить — то есть сказать им, что пора прекращать работу, и в главной нити дождаться, когда они это сделают. Для этого я придумал вот что: главная нить при запуске нового треда кладёт его JoinHandle в массив, а при завершении просто проходится по массиву и вызывает .wait(). Сообщение «пора закругляться» передаётся через AtomicBool. Проблема в том, что воркеры могут завершаться досрочно
Изначально я думал, что воркер при завершении будет сам себя удалять из массива, но при шлатном завершении получится дедлок: главная нить взяла мьютекс массива и ждёт завершения треда, а тред ждёт мьютекса, чтобы удалиться из массива. Как нормальные люди такое делают?