CyclicBarrier
同步辅助类,允许一组线程互相等待,直到 reach a common on barrier point. barrier point 是 parties 减少到0的时候。CyclicBarrier 在涉及到固定的 party 线程等待成功之后执行一个动作(barrierCommand)的场景。当等待条件满足之后,这个 Barrier 会被重置,所以这个 Barrier 可以循环使用,所以会有 Cyclic(循环)修饰。
1 | public ReentrantReadWriteLock(boolean fair) { |
接口是一组操作的集合,通常接口中定义的操作是密切相关的,也是职责单一的,这是接口设计的规范要求。所以在一个系统中可能抽象出许多接口,这些接口彼此之间几乎没有交集(各个接口职责单一)。
但是对于一个系统而言,往往是由许多组件(接口的具体实现类)构成的,如果构成系统的组件没有交集,则这个系统的功能也就非常单一了。
AbstractQueuedSynchronizer是实现锁的关键,Doug Lea关于实现这个类的论文: The java.util.concurrent Synchronizer Framework