CycliBarriar和CountdownLatch之间有什么区别呢?
下文笔者讲述CycliBarriar和CountdownLatch的区别,如下所示
CountDownLatch(倒计时器)简介
CountDownLatch: 常用于某个线程A等待若干个其他线程执行完任务之后 它才执行 强调一个线程等多个线程完成某件事情 CountDownLatch方法比较少,操作比较简单,CountDownLatch是不能复用的。 CountDownLatch方法原理: 任务分为N个子线程去执行,state也初始化为N(注意N要与线程个数一致) 这N个子线程是并行执行的,每个子线程执行完后countDown()一次 state会CAS(Compare and Swap)减1 等到所有子线程都执行完后(即state=0),会unpark()主调用线程,然后主调用线程就会从await()函数返回,继续后余动作
CycliBarriar和CountdownLatch区别
区别1:复用性上不同 CountDownLatch是不能够重用 CyclicBarrier是可以重用 区别2:侧重点不同 CountDownLatch:一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行 CyclicBarrier:一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。