设为首页 加入收藏

TOP

用C++实现多线程Mutex锁(Win32)
2014-11-24 13:57:53 来源: 作者: 【 】 浏览:2
Tags:实现 线程 Mutex Win32

准备知识:1,内核对象互斥体(Mutex)的工作机理,WaitForSingleObject函数的用法,这些可以从MSDN获取详情; 2,当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释放该互斥体。


下边是我参考开源项目C++ Sockets的代码,写的线程锁类Lock.h


Lock.h


Lock.cpp


下边是测试代码


用VC2005编译,启动程序,下边是截图




如果将测线程函数中的代码注视掉,重新编译代码,运行


则结果见下图




由此可见,通过使用Mutex的封装类,即可达到多线程同步的目的。因Mutex属于内核对象,所以在进行多线程同步时速度会比较慢,但是用互斥对象可以在不同进程的多个线程之间进行同步。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux下AT&T语法同Intel语法区别 下一篇mini2440 驱动ds18b20

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)
·Linux常用命令60条( (2025-12-25 00:50:40)
·nginx 监听一个端口 (2025-12-25 00:19:30)
·整个互联网就没有一 (2025-12-25 00:19:27)