C ++ Mutex语法和用法

时间:2012-12-12 00:56:39

标签: c++ multithreading winapi mutex

我一直在使用C ++对多线程解决方案进行大量研究,但由于某种原因,我无法找到任何具体的语法(使用不使用任何库)我将图像渲染到屏幕上为每个线程分隔屏幕空间。

我想要发生的是让线程递增一个值并挂起,一旦所有线程都通过它就会将它显示在屏幕上,然后释放线程再次启动。

void WaitForThreads(){
    WaitForSingleObject( hCompleteThread, INFINITE );
    IdleThreads++;
    if(IdleThreads==CoreMax){
        //Copy image to screen
        ReleaseMutex( hRelease);
    }
    ReleaseMutex( hCompleteThread);
    WaitForSingleObject( hRelease, INFINITE );
    IdleThreads--;
    if(IdleThreads>0){
        ReleaseMutex( hRelease);
    }
}

我不确定我是使用错误的语法还是不完全掌握正在发生的事情。

1 个答案:

答案 0 :(得分:0)

如果没有更多的背景,就无法分辨出你的目标。如何创建hCompleteThread和hRelease? - 也就是说,他们是什么?

无论如何,你可以使用信号量。信号量为你做计数。它们非常适合这种生产者/消费者。