如何实现一组持久的协调工作线程

时间:2018-05-29 19:58:09

标签: thread-synchronization

我想重用一组工作线程。每个工作线程执行独立工作,但它们必须作为协调团队开始和停止处理。我需要一个有效的方法让每个工作线程阻塞,直到主线程告诉他们所有去,并且主线程阻塞直到所有工作线程的有效方法是结束。

每个工作块只需要几十微秒,因此创建一组线程然后加入它们的通常方法都涉及太多的开销。

伪代码如下:

主线程:

create N threads

forever
    prepare new independent work for each thread
    tell all N threads to run their part
    wait for all N threads to complete their work
    use results

典型的工作线程:

forever
    wait to run
    do my work
    indicate to main my work is complete

我的问题是如何最好地执行此信令和同步。我询问如何分割工作或将工作移入或移出每个线程;足以说明线程没有互动。

0 个答案:

没有答案