CountDownLatch VS CyclicBarrier

Nov 30, 2016 | | Say something

CountDownLatch和CyclicBarrier都是线程同步辅助工具。
CountDownLatch的经典用法为两种
场景1:
将count初始化为1,当一个线程调用countDown()后其他等待的线程继续执行
场景2:
将count初始化为n,协调线程(coordinate thread)等待其他工作线程(work thread)都执行结束后再执行某些动作。过程为协调线程调用await()等待count变为0,其他的线程调用countDown()表示其执行完毕。
CyclicBarrier原理:
不是等待别的线程调用countDown()来减少count,当count变为0时阻塞在await()的线程继续执行。而是当await()的线程数等于初始化值N时执行CyclicBarrier初始化时提供的回调函数,然后所有这些在await()调用处阻塞的线程继续执行

Posted in: java基础

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">