Описание: 1. Существует один основной поток и 8 подпотоков, все эти потоки выполняются в цикле, выход не требуется.2. Эти 8 подпотоков установят глобальную переменную, затем в основном потоке нужно прочитать эту глобальную переменную.3. Главный поток должен дождаться завершения всех этих 8 подпотоков, чтобы завершить один цикл.У каждой подпотока есть событие.
Псевдокод: подпоток:
While(1) {
do_something1();
set_global_variable;
set_event;
sleep(100);
}
основной поток:
While(1) {
int i;
for (i = 0; i < 8; i++) {
wait_event[event[i]];
}
read_global_variable;
do_something2();
sleep(100)
}
Мой вопрос: мне нужно реализоватьследующее.Когда установлено событие одного подпотока, подпоток должен быть приостановлен до тех пор, пока не будут установлены события всех этих 8 подпотоков, и основной поток не выполнит read_global_variable, тогда подпоток может начать работать снова.То есть основной поток должен контролировать выполнение подпотоков.Но я не могу обработать это лучше.Как это реализовать?Спасибо.