我如何同步Visual C 2010中的线程
how do I synchronize threads in Visual C++ 2010
VC 2010似乎不支持Mutex。我的功能如下。
DWORD WINAPI WatchItThreadProc(LPVOID lpParam)
{
int *t=static_cast<int*>(lpParam);
while (true)
{
short cpuUsage = usage.GetUsage(DWORD(*t));
printf("Thread id %d: %d%% cpu usagen", *t, cpuUsage);
Sleep(500);
}
}
在主函数中我创建两个线程如下。
DWORD i1=2632;
DWORD i2=4040;
void *p1=&i1;
void *p2=&i2;
CreateThread(NULL, 0, WatchItThreadProc, p1, 0, NULL);
CreateThread(NULL, 0, WatchItThreadProc, p2, 0, NULL);
我需要同步这两个线程,以避免比赛条件。如何使用Visual C 2010?
mutex受支持。请参阅:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682411(V=VS.85).aspx
您需要做的就是createMutex(),waitforsingleobject()和后来reteaseMutex()以同步两个线程。您可能已经忘记了链接到kernel32库。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在C++中使用cURL和多线程
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在cuda线程之间共享大量常量数据
- 如何将元素添加到数组的线程安全函数?
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 异常属于C++中的线程还是进程
- 双线程应用比单线程应用慢 C++ (VC++ 2010 Express).如何解决?
- 从 Visual C++ 2010 中的单独线程调用消息框
- 我如何同步Visual C 2010中的线程
- 将函子传递给boost ::线程在Visual Studio 2010中失败
- Visual C++2010中STL映射的实现与线程安全
- 调用Fl_Double_Window的隐藏方法在多线程 FLTK C++应用程序 (Visual Studio 2010
- 在Visual Studio 2010中定义线程
- c++ 11线程API: MSVC 2010有免费的实现吗?
- IncrediBuild在一个线程中编译Visual Studio 2010/2012解决方案的一些项目
- visual studio 2010 -是否有办法在旧的C/ c++编译器中使用c++ 11线程对象?