
并发基础之Condition(等待队列)
1 定义 Condition是在AQS中配合使用的wait/nofity线程通信协调工具类,我们可以称之为等待队列
Condition定义了等待/通知两种类型的方法,当前线程调用这些方法时,需要提前获取到Condition对象关联的锁。Condition对象是调用Lock对象的newCondition()方法创建出来的,换句话说,Condition是依赖Lock对象。
Condition与Object中监视器方法不同点 >condition可以有多个等待队列 monitor只有一个队列在对象头中 condition的等待可以自定义超时时间 conditon的signal 是唤醒等待队列头部的线程节点, Object的notify是随机唤醒 condition对象的属性对开发者透明
2 Condition使用 demo代码如下
