|
我这个是有加互斥锁的吧,为什么还这样输出?
- // 定义互斥锁句柄
- HANDLE g_hAndle1 = 0;
- DWORD CALLBACK threadShow0111(LPVOID lpParameter)
- {
- const char* p1 = (const char*)lpParameter;
- while (1)
- {
- // 等待互斥资源
- WaitForSingleObject(g_hAndle1, INFINITE);
- for (int i = 0; i < strlen(p1); i++)
- {
- printf("%c", (char*)p1[i]);
- Sleep(125);
- }
- printf("\n");
- // 释放互斥锁
- ReleaseMutex(g_hAndle1);
- }
- }
- DWORD CALLBACK threadShow0211(LPVOID lpParameter)
- {
- while (1)
- {
- const char* p1 = (const char*)lpParameter;
- while (1)
- {
- // 等待互斥资源
- WaitForSingleObject(g_hAndle1, INFINITE);
- for (int i = 0; i < strlen(p1); i++)
- {
- printf("%c", (char*)p1[i]);
- Sleep(125);
- }
- printf("\n");
-
- // 释放互斥锁
- ReleaseMutex(g_hAndle1);
- }
- }
- }
- int main()
- {
- // 2. 创建互斥锁
- g_hAndle1 = OpenMutex(NULL, FALSE, NULL);
- DWORD mId;
- HANDLE hread01 = CreateThread(NULL, 0, threadShow0111, (void*)"********", 0, &mId);
- HANDLE hread02 = CreateThread(NULL, 0, threadShow0211, (void*)"--------", 0, &mId);
- getchar();
- // 关闭互斥锁
- CloseHandle(g_hAndle1);
- return 0;
- }
复制代码
ReleaseMutex(g_hAndle1); 位置不对 激活互斥锁时机不对 看一下到大佬的课程
|
-
上一篇: CopyFile函数无法访问可移动磁盘吗?下一篇: 多文件编程
|