若有收获,请记得分享和转发哦
在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别。
一、CountDownLatch
先看一下,CountDownLatch 源码的官方介绍。
![5f20f4afa9f3d6a4c7a9ee43fb35b328.png](https://i-blog.csdnimg.cn/blog_migrate/443c59be2b38f41cc560645f8d8c0aff.png)
意思是,它是一个同步辅助器,允许一个或多个线程一直等待,直到一组在其他线程执行的操作全部完成。
public CountDownLatch(int count) {
if (count < 0) throw new IllegalArgumentException("count < 0");
this.sync = new Sync(count);
}
它的构造方法,会传入一个 count 值,用于计数。
5. Semaphore ,需要拿到许可才能执行,并可以选择公平和非公平模式。