1. Windows线程同步的四种方式
2. 区别
- Critical Section更多强调的是保护,Event对象、Mutex对象与Semaphore对象更多的强调的是同步;
- Critical Section对象是无法设置等待超时的,而其他三个对象则可以设置等待超时,从这一点来讲,在使用Critical Section对象时,由于在等待进入关键代码段时无法设置等待超时,很容易造成死锁;
- Critical Section对象是线程锁,而其他三个对象是进程锁。这一点从本质上来分析,Critical Section对象是用户态模式下面实现线程同步的方法,而其他三个对象均是内核对象。内核对象机制的适应性远远优于用户方式机制。实际上,内核对象机制的唯一不足之处在于它的速度比较慢,这是因为当调用内核机制对象时,必须从用户方式转到内核方式;
- Critical Section和Event为递归锁。
网友评论