使用Node实现FIFO队列,可以用于构建锁或者其他同步装置的基础框架
利用了一个int类型表示状态
使用方法是继承
子类通过继承并通过实现它的方法管理其状态{acquire和release}的方法操纵状态
可以同时实现排它锁和共享锁模式(独占、共享)
CountDownLatch
主要方法await(),countDown()
使用场景:调用await()的时候必须等待countDown()减去的值为0的时候才会执行await()后面的操作。
Semaphore (信号量)
![](https://img.haomeiwen.com/i2114508/19382de8bdfc257c.png)
主要方法:
acquire(); // 获取一个许可
release(); // 释放一个许可
tryAcquire() // 尝试获取一个许可,其他的线程获取不到就知道放弃了
使用场景:
CyclicBarrie
主要方法:
await()
ReentrantLock 与 锁
Condition
await()
signalAll()
网友评论