await时间为:1443970329524signal时间为:1443970332524await等待结束差值是3000毫秒也就是3秒,符合代码预期,成功利用ReentrantLock的Condition实现了等待/通知模型 。其实这个例子还证明了一点,Condition的await() *** 是释放锁的,原因也很简单,要是await() *** 不释放锁,那么signal() *** 又怎么能调用到Condition的signal() *** 呢?
注意要是用一个Condition的话,那么多个线程被该Condition给await()后,调用Condition的signalAll() *** 唤醒的是所有的线程 。如果想单独唤醒部分线程该怎么办呢?new出多个Condition就可以了,这样也有助于提升程序运行的效率 。使用多个Condition的场景是很常见的,像ArrayBlockingQueue里就有 。
文章插图
推荐阅读
- 梦见水杯 杯子
- 喝水杯pc材质怎么样 pc材质是什么材料
- 聚丙烯水杯能装100度开水吗 聚丙烯水杯安全吗
- 为什么运动水杯里面有弹簧 运动水杯 弹簧?
- 梦见别人送水杯
- 软硅胶水杯对人体有害吗 保温杯的硅胶有毒吗?
- 316l不锈钢和304哪个好 316不锈钢和304哪个好儿童水杯?
- 塑料水杯什么材质的比较安全 关于塑料水杯材质介绍
- 送水杯给女生什么意思 送水杯给女生有什么寓意
- 弱碱性水杯 弱碱性水