14.条件队列和AQS
目录
1状态依赖性的管理(引入条件队列)
通过轮询与休眠方式勉强解决:
1.1示例:将前提条件的失败传递给调用者
1.2示例:通过轮询与休眠来实现简单的阻塞
1.3条件队列(wait、notify)
2使用条件队列
2.1条件谓词
2.2过早唤醒
关键点:wait会释放锁,所以在重新获得锁后需要再次检验条件
2.3丢失的信号
线程在等待前没有先检查条件谓词
2.4通知
条件通知:
2.5示例:阀门类
代码有误
第二节其他部分未理解待补充
3显式的Condition对象
4Synchronizer剖析
5AbstractQueuedSynchronizer
6同步工具中的AQS
6.1ReentrantLock
6.2Semaphore与CountDownLatch
6.3FutureTask
6.4ReentrantReadWriteLock
总结