Java同步技术(五)
来源:互联网 发布:黑马程序员 ui 编辑:程序博客网 时间:2024/05/21 22:38
2.4. 信号量、事件以及条件变量之间异同
前面我们看到了事件的定义及应用,那么它与信号量有什么异同点呢?在此,我们试着总结一下:
- 信号量通过P操作,事件和条件变量通过wait()操作,可以使当前线程处于阻塞状态。
- 信号量通过V操作,事件和条件变量通过signal()操作, 可以唤醒一个处于阻塞状态的线程
- 通过queue操作,它们都可以获得处于等待队列中的线程数量
- 事件与条件变量在执行signal操作时,如果没有等待线程会丢弃该信号,那么这个信号对系统就不会产生影响。而信号量在执行V操作时,不论是否有等待线程都会保存该信号(信号值增加)。
- 条件变量是临界区(管程)相关的。即它必须使用在临界区(管程方法)内,而且会在执行wait操作时释放对临界区(管程)的控制权。而信号量和事件都是临界区(管程)无关的, 即可以在非临界区(管程方法)内使用。即使在临界区内使用了P操作和wait()操作,也不会释放所在临界区(管程)的控制权。
- Java同步技术(五)
- Java同步技术(五)
- Java同步技术 (一)
- Java同步技术(二)
- Java同步技术(三)
- Java同步技术(四)
- Java同步技术(六)
- Java同步技术(七)
- Java同步技术(八)
- Java同步技术
- Java同步技术(九)
- Java同步技术(十)
- Java同步技术 (一)
- Java同步技术(二)
- Java同步技术(三)
- Java同步技术(四)
- Java同步技术(六)
- Java同步技术(七)
- Java同步技术(四)
- java中,Welcome.java的实践过程问题
- [转载]MTK入门教程
- VisualStudio2005技巧集合--你真的会使用断点吗?
- 心态失常
- Java同步技术(五)
- Java同步技术(六)
- C++ String数组的定义问题
- 【倍受重创却欲罢不能的俄罗斯】【兼论美国为何敢将强横到进行到底】
- CSS text-transform 属性
- Windows线程(使用Event同步)
- C言語に関するファイル(ファイルオープン、リード、ライト)
- Intel P45芯片组介绍
- 如何在英文Ubuntu下输入中文