Condition等待机制
2016-12-26 23:25:06 0 举报
Condition等待机制是一种线程同步技术,它允许一个或多个线程在特定条件满足之前暂停执行。当其他线程改变这个条件时,等待的线程将被唤醒并继续执行。这种机制可以避免死锁,提高程序的并发性能。Condition接口提供了await()、signal()和signalAll()等方法来实现这种等待-通知模式。await()方法使当前线程进入等待状态,直到另一个线程调用该Condition对象的signal()或signalAll()方法;signal()方法唤醒在此Condition对象监视器上等待的单个线程;signalAll()方法唤醒在此Condition对象监视器上等待的所有线程。
作者其他创作
大纲/内容
结束循环等待
释放锁
中断了
当前线程有没有中断?
判断当前线程是否被中断?
获取到锁
判断中断标志位interruptMode?
被唤醒
否
加入到等待队列尾部
是
没有中断
当前线程进入等待状态
结束
node.nextWaiter!=null表示当前线程是被中断取消等待的
当前节点是否在同步队列中?
在
将节点从等待队列移动到同步队列中,取消等待
抛出中断异常,线程停止
结束等待的两种方式:1.Condition.signal()2.线程中断
开始
进入自旋竞争获取独占锁
不在
中断
node.nextWaiter != null?
从等待队列中清除已经取消的节点
构造等待节点
0 条评论
下一页
为你推荐
查看更多