Event和Mutex区别
来源:互联网 发布:app应用下载推广源码 编辑:程序博客网 时间:2024/05/22 03:50
事件
事件是用来同步地位不相等的线程的,事件可以用来使一个线程完成一件事情,然后另外的线程完成剩下的事情。事件的使用很灵活,自动事件的激发态是由人工来控制的,而Mutex在释放(releaseMetux)后就一直处于激发态,直到线程WaitForSingleObject。事件可以用来控制经典的读写模型和生产者和消费者模型。相应的方式为,生成者等待消费者的消费,再消费者消费完后通知生产者进行生产。
Mutex
Mutex是排他的占有资源,一般用于地位相等的现在进行同步,每个线程都可以排他的访问一个资源或代码段,不存在哪个线程对资源访问存在优先次序。一个线程只能在Mutex处于激发态的时候访问被保护的资源或代码段,线程可以通过WaitForSingelObject来等待Mutex,在访问资源完成之后,ReleaseMutex释放Mutex,此时Mutex处于激发态。Mutex具有成功等待的副作用,在等待到Mutex后,Mutex自动变为未激发态,直到调用ReleaseMutex使Mutex变为激发态为止。自动事件也具有成功等待的副作用。手动事件没有,必须ResetEvent使手动事件变为未激发态。进程和线程也没有成功等待的副作用。当线程或者进程函数返回时,线程内核对象变为激发态,但WaitForSingleObject并没有使线程或者进程的内核对象变为未激发态。
事件是用来同步地位不相等的线程的,事件可以用来使一个线程完成一件事情,然后另外的线程完成剩下的事情。事件的使用很灵活,自动事件的激发态是由人工来控制的,而Mutex在释放(releaseMetux)后就一直处于激发态,直到线程WaitForSingleObject。事件可以用来控制经典的读写模型和生产者和消费者模型。相应的方式为,生成者等待消费者的消费,再消费者消费完后通知生产者进行生产。
Mutex
Mutex是排他的占有资源,一般用于地位相等的现在进行同步,每个线程都可以排他的访问一个资源或代码段,不存在哪个线程对资源访问存在优先次序。一个线程只能在Mutex处于激发态的时候访问被保护的资源或代码段,线程可以通过WaitForSingelObject来等待Mutex,在访问资源完成之后,ReleaseMutex释放Mutex,此时Mutex处于激发态。Mutex具有成功等待的副作用,在等待到Mutex后,Mutex自动变为未激发态,直到调用ReleaseMutex使Mutex变为激发态为止。自动事件也具有成功等待的副作用。手动事件没有,必须ResetEvent使手动事件变为未激发态。进程和线程也没有成功等待的副作用。当线程或者进程函数返回时,线程内核对象变为激发态,但WaitForSingleObject并没有使线程或者进程的内核对象变为未激发态。
总之,事件一般用于控制线程的先后顺序,而Mutex一般用于排他的访问资源。
阅读全文
0 0
- Event和Mutex区别
- Event和Mutex区别
- Event和Mutex区别
- CriticalSection、Event、Mutex、Semaphores区别
- Critical Section,Mutex,Semaphore,Event区别
- Critical Section,Mutex,Semaphore,Event区别
- 事件(event)与互斥量(mutex)区别
- Critical Section,Mutex,Semaphore,Event区别
- Critical Section,Mutex,Semaphore,Event区别
- Critical Section,Mutex,Semaphore,Event区别
- Mutex和Semaphore区别
- Mutex和Semaphore区别
- Windows下Critical Section、Event、Mutex、Semaphores区别
- Windows下Critical Section、Event、Mutex、Semaphores区别
- Windows下Critical Section、Event、Mutex、Semaphores区别
- Windows下Critical Section、Event、Mutex、Semaphores区别
- Windows下Critical Section、Event、Mutex、Semaphores区别
- Windows下Critical Section、Event、Mutex、Semaphores区别
- 使用 soapUI 测试 REST 服务(并发测试)
- C++11:std::bind
- 会服系统数据库操作
- 线程的概念、线程与进程比较
- 前端模块化开发那点历史
- Event和Mutex区别
- HDU-4135 Co-prime(容斥原理)
- jvm 调优之垃圾回收
- Sticky footer布局
- react-native-image-picker配置
- 自考路漫漫之数据库系统
- 安卓实训日记第15天
- bzoj 2820(Mobius)
- Android上的Mosquitto推送