您的位置:首页 > 其它

CountDownLatch、CyclicBarrier和Semaphore

2017-06-20 19:53 120 查看
分享学习好文http://www.cnblogs.com/dolphin0520/p/3920397.html

1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同:

    CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行;

    而CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行;

    另外,CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。

2)Semaphore其实和锁有点类似,它一般用于控制对某组资源的访问权限。

补充:对于CountDownLatch和CyclicBarrier,之间有一个比较重要的区别,就是CountDownLatch不会阻塞线程,而如果使用CyclicBarrier,当线程到达这个屏障的时候,会等待其他线程,这时候已经到达的线程就会处于阻塞的状态,通俗点说,就在屏障前干等着其他线程的到达。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: