15,471
社区成员
发帖
与我相关
我的任务
分享
UINT WINAPI Thread1(LPVOID para)
{
printf("Enten thread1\n");
HANDLE *phMutex = (HANDLE *)para;
// 得到互斥体
WaitForSingleObject(*phMutex, INFINITE);
// 对于同一个线程,主要获得互斥体,还可以获得多次
//WaitForSingleObject(*phMutex, INFINITE);
// 等待2s
Sleep(2*1000);
printf("Leave thread1\n");
// 释放
ReleaseMutex(*phMutex);
return 0;
}
UINT WINAPI Thread2(LPVOID para)
{
printf("Enten thread2\n");
HANDLE *phMutex = (HANDLE *)para;
// 得到互斥体
WaitForSingleObject(*phMutex, INFINITE);
// 等待2s
Sleep(2*1000);
printf("Leave thread2\n");
// 释放
ReleaseMutex(*phMutex);
return 0;
}
int main()
{
HANDLE hMutex = CreateMutex(NULL, FALSE, NULL);
HANDLE hThread1 = (HANDLE)_beginthreadex(NULL, 0, Thread1, &hMutex, 0, NULL);
HANDLE hThread2 = (HANDLE)_beginthreadex(NULL, 0, Thread2, &hMutex, 0, NULL);
// 等待6s
Sleep(6*1000);
system("pause");
return 0;
}