描述: 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个子线程为止。如果设置了event,并且主线程执行了read_global_variable,则子线程可以再次开始运行。那是主线程需要控制子线程的执行。 但我无法更好地处理它。怎么实现呢?感谢。