CyclicBarrier的使用
2018-04-01 本文已影响5人
码出高效
该类又叫栏删。类CyclicBarrier不仅有CountDownLatch所具有的所有功能。还可以实现屏障等待的功能,也就是阶段性的同步。它在使用上的意义在于可以循环地实现线程要一起做任务的目标,而不是像CountDownLatch一样,仅仅支持一次线程与同步点阻塞的特性,类CyclicBarrier和Semaphore以及COuntDownLatch一样,也是一个同步辅助类,它允许一组线程相互等待,直到到达某个公共屏障点,这些线程就必须实施相互等待。
(1)CountDownLatch作用:一个线程或者多个线程,等待另外一个线程或者多个线程完成某个事件之后才能继续执行。
(2)CyclicBarrie的作用:多个线程之间相互等待,任何一个线程完成之前,所有的线程都必须等待,所以对该类来说,重点是 多个线程之间 任何一个线程没有完成任务,则所有事情之后必须等待。
CountDownLatcch类的使用情况是两个角色之间之间相互等待,而CyclicBarrier的使用情况是同类相互等待。CyclicBarrier是加法技术。
如果线程个数大于parties数量时可以进行分批处理的。这个就不做演示了。