Ice中Monitor的使用
来源:互联网 发布:苹果电脑无法卸载软件 编辑:程序博客网 时间:2024/06/05 04:46
IceUtil::Monitor类
timedWait:时间到达后,尝试获取锁,但可能其他线程正在使用,当锁被释放时,才会真正得到,开始后续的执行。
1. 从代码可以看出,Monitor比Mutex(互斥体)多了wait/timedWait,notify/notifyAll操作。这样允许一个获得锁进入临界区的线程,能够自我挂起,让出临界区。
2.Monitor是个模板类,需要Mutex/RecMutex(递归互斥体)做为模板参数。
3.wait/timedWait在等待期间,会挂起线程,让出互斥体,等待被唤醒。
区别是:
timedWait(const Time&)会在时间到达后,自我唤醒,重新尝试获得锁;
wait()是等待被唤醒(其他线程调用notify()或者notifyAll()。
timedWait返回值:如果有另外的线程调用 notify 或 notifyAll,在发生超时之前唤醒挂起的线程,这个调用返回 true,监控器重被锁住,挂起的线程恢复执行。而如果发生超时,函数返回 false。
使用实例
timedWait:时间到达后,尝试获取锁,但可能其他线程正在使用,当锁被释放时,才会真正得到,开始后续的执行。
补:
Mutex为简单互斥体:一个线程获得锁后,不能再尝试获得锁。
RecMutex为递归互斥体,一个线程可以多次尝试获得锁。
- 顶
0 0
- Ice中Monitor的使用
- Ice中Monitor的使用
- c#中Monitor的使用
- MyEclise中TCP/IP Monitor的使用
- ICE的proxy使用
- ICE的插件使用
- ice的facet使用
- ICE的Glacier2使用
- ICE的使用
- Ice Session的使用
- ICE的Glacier2使用
- ICE的使用
- Source Monitor的使用
- API Monitor的使用
- kafka monitor的使用
- ICE中Context的用法
- ice中 icepatch2 的使用方法
- ICE - 企业使用的工具
- Android单元测试框架源码分析(一)浅析Mockito
- Java图的广度遍历 邻接矩阵
- JavaScript深入理解函数 - 函数的定义
- Java修饰符汇总
- Spring定时调度
- Ice中Monitor的使用
- SpringAOP面向切面
- 什么是ajax
- 调用摄像头拍照、裁剪(第一行代码)
- SpringJDBC
- 杨辉三角的打印
- SpringMVC
- 缩减代码和资源
- Servlet的编译和部署