mutex互斥问题

dir541541 dir541541 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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;
}

结果为:
Enten thread1
Enten thread2
Leave thread1
Leave thread2
书上的例子。但结果和书上不一样。
书上为:
Enten thread1
Leave thread1
Enten thread2
Leave thread2

why?
...全文

相关推荐

Carvalho-Roucairol-Mutex:该算法是根据 OSF Carvalho 和 G. Roucairol 提交的 ACM 通信技术通信编写的。 *该算法用于解决计算机网络中的互斥问题,它是 Ricart Agrawal 算法的优化版本

Carvalho-Roucairol-Mutex 该算法是根据 OSF Carvalho 和 G. Roucairol 提交的 ACM 通信技术通信编写的。 *该算法用于解决计算机网络中的互斥问题,它是 Ricart Agrawal 算法的优化版本。 技术规范(编程时) 操作系统:Windows 8.1 语言:Java IDE:Eclipse 开普勒 怎么跑? 将 Java 类导出为 JAR 文件。 并将其复制到每个节点的utdallas驱动器。 打开 putty 并建立从 dc20.utdallas.edu 到 dc29.utdallas.edu 的连接。 Node0 – dc20.utdallas.edu Node1 – dc21.utdallas.edu Node2 – dc22.utdallas.edu Node3 – dc23.utdallas.edu Node4

火石创造

使用Go语言的互斥锁(Mutex)解决并发问题

本文阐述了在Go语言中使用互斥锁(Mutex)解决并发编程中的数据竞争和竞争条件问题。通过并发计数器的示例,展示了多个goroutine同时操作共享变量会导致数据不一致,结果不准确。为避免这种情况,可以使用Mutex保护临界区,对共享资源进行加锁和解锁。文章详细介绍了Mutex的使用方法、注意事项和最佳实践,包括使用零值初始化Mutex、在结构体中嵌入Mutex等。还扩展介绍了其他同步原语,如读写锁(RWMutex)、等待组(WaitGroup)和条件变量(Cond),帮助开发者在不同并发场景下选择合适的同

蒙娜丽宁

c# mutex互斥量的深入解析

本篇文章主要是对c#中的mutex互斥量进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助

weixin_38724919

操作系统实验二Mutex.doc

操作系统实验二Mutex.doc

超级源码阿

linux和win32下通用的互斥锁Mutex封装

linux和win32下通用的互斥锁Mutex封装,统一接口,可直接使用

alfly007
评论 11
收藏 已收藏
分享
返回顶部
dir541541
进程/线程/DLL 15,466 成员 49,169 内容