天天看点

线程同步辅助类CyclicBarrier

 CyclicBarrier 是一个可重置的多路同步点,在某些并行编程风格中很有用。

集合点同步:CyclicBarrier

多条线程同时执行一个阶段性任务时,相互等待,等到最后一个线程执行完阶段后,才能一起执行下一段任务.

场景:

和朋友组队去游玩,再爬山,在吃饭,再KTV

线程同步辅助类CyclicBarrier

第一个人爬山到顶之后要等待其他的三个人也到顶再下山吃饭,

第一个人吃完饭之后要等待之后的三个人也吃晚饭,再去KTV

这四个人相当于四条线程,而这些任务就设定了一一个个的点,这种点称之为集合点.

CyclicBarrier就是在集合点同步.

CyclicBarrier和CountDownLatch很相似,但是CyclicBarrier有一个reset能回到初始状态, CountDownLatch不可以.

还有一个很明显的区别是, CyclicBarrier同一类线程之间相互等待.

CountDownLatch是其他类线程等待另一类线程来唤醒它们...

线程同步辅助类CyclicBarrier

  CyclicBarrierDemo.java

线程同步辅助类CyclicBarrier
线程同步辅助类CyclicBarrier

 运行结果:

线程同步辅助类CyclicBarrier
线程同步辅助类CyclicBarrier

本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/6206265.html,如需转载请自行联系原作者