线程同步-互斥量
来源:互联网 发布:微信收红包网络出错 编辑:程序博客网 时间:2024/06/05 06:36
2.互斥量(Mutex)
A synchronization object that allows one thread mutually exclusive access to a resource. Mutexes are useful when only one thread at a time
can be allowed to modify data or some other controlled resource. For example, adding nodes to a linked list is a process that should only be allowed
by one thread at a time.
是用于串行化访问资源的全局对象。我们首先设置互斥对象,然后访问资源,最后释放互斥对象。在设置互斥对象时,如果另一个线程(或进程)试图设置相同
的互斥对象,该线程将会停下来,直到前一个线程(或进程)释放该互斥对象为止。注意它可以由不同应用程序共享。
互斥量表现互斥现象的数据结构,也被当作二元信号灯。一个互斥基本上是一个多任务敏感的二元信号,它能用作同步多任务的行为,它常用作保护从中断来的
临界段代码并且在共享同步使用的资源。
Mutex本质上说就是一把锁,提供对资源的独占访问,所以Mutex主要的作用是用于互斥。Mutex对象的值,只有0和1两个值。这两个值也分别代表了Mutex的两种
状态。值为0, 表示锁定状态,当前对象被锁定,用户进程/线程如果试图Lock临界资源,则进入排队等待;值为1,表示空闲状态,当前对象为空闲,用户进程/线程可以
Lock临界资源,之后Mutex值减1变为0。
Mutex被创建时可以有初始值,表示Mutex被创建后,是锁定状态还是空闲状态。在同一个线程中,为了防止死锁,系统不允许连续两次对Mutex加锁(系统一般会
在第二次调用立刻返回)。也就是说,加锁和解锁这两个对应的操作,需要在同一个线程中完成。
优点:
在单个进程类,实现了线程互斥,允许多个进程同时访问
缺点:
和临界区相比速度较慢
使用方法如下:
互斥锁
VC可使用 CMutex参见atlmfc\include\afxmt.h
- 线程同步--使用互斥量
- 线程同步之互斥量
- 线程同步-互斥量
- 线程同步-互斥量
- 线程同步与互斥量
- 线程同步---互斥量mutex
- Linux线程同步---互斥量
- 线程同步 - 互斥量
- Linux线程同步------互斥量
- 线程同步--互斥量Mutex
- 线程同步(互斥量)
- 线程同步--线程同步--线程同步--线程同步--线程同步
- Linux线程同步: 互斥量(mutex)
- 线程同步之二:互斥量
- Linux之线程同步-互斥量
- POSIX线程(3)互斥量同步
- 线程同步——互斥量
- 利用互斥量实现线程同步
- LINUX学习笔记20—内核配置与编译
- 线程同步-临界区
- JM86、X264、T264、FFMPEG编解码器评测
- 端口号
- CMD 命令大全
- 线程同步-互斥量
- 孤胆战机:以彼之矛攻其自身的特殊射击游戏
- Android OpenGL教程-第一课
- C#实现Ping功能|根据网址查询IP
- SQL 语句大全
- iphone 表情编码
- HTML5学习笔记第一节(智能提示和视频音频标签)
- HTML5学习笔记第二节(Email标签(自动验证格式),Number标签,URL标签...)
- 15.2.2 介绍行为