Доброго времени суток!
Задача такова: допустим, у нас есть (запущено) несколько потоков, каждый из которых, естественно, может завершиться в любой момент времени. Есть родительский для них процесс, который хочет вовремя определять, когда и кто из них остановился и при необходимости сразу перезапустить. Если бы у нас был один поток, то достаточно было бы простого join
, но в случае нескольких - первый join
должен заблокировать поток выполнения родительского процесса, пока не завершится первый поток и в этом случае остальные джоины не сработают. Решение вида «на каждый новый поток создавать еще поток-контролёр», конечно, сработает, но выглядит как-то вычурно и, подозреваю, что в нем тоже будут недостатки (поток сможет создать дочерний поток???).
Я где-то заблуждаюсь или эту задачу можно решить только используя процессы? В общем, как она решается?