C批处理数据和主线程等待所有子线程

时间:2018-05-11 06:01:04

标签: c multithreading events synchronization

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

0 个答案:

没有答案