摘要: AQS全名:AbstractQueuedSynchronizer,是并发容器J.U.C(java.lang.concurrent)下locks包内的一个类。它实现了一个FIFO(FirstIn、FisrtOut先进先出)的队列。底层实现的数据结构是一个双向列表。 CyclicBarrier 和 CountDownLatch的比较: CountDownLatch: 一个线程(或者多个), 等待另外N个线程完成某个事情之后才能执行。--> 反正 你执行完 就ok.不能随意放开 CyclicBarrier: N个线程相互等待,任何一个线程完成之前,所有的线程都必须等待。--> 可以到到某个条件.我放开就行了 CountDownLatch的计数器只能使用一次。而CyclicBarrier的计数器可以使用reset() 方法重置。所以CyclicBarrier能处理更为复杂的业务场景,比如如果计算发生错误,可以重置计数器,并让线程们重新执行一次。 CountDownLatch:减计数方式,CyclicBarrier:加计数方式 信号量(Semaphore),有时被称为信号灯,是在多 阅读全文
posted @ 2018-09-22 22:49 爱呼吸的鱼 阅读(414) 评论(0) 推荐(0) 编辑