终于有人把 CountDownLatch,CyclicBarrier,Semaphore 说明白了!

2022-02-17 15:48:56 浏览数 (3)

在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别。

一、CountDownLatch

先看一下,CountDownLatch 源码的官方介绍。

意思是,它是一个同步辅助器,允许一个或多个线程一直等待,直到一组在其他线程执行的操作全部完成。

代码语言:javascript复制
public CountDownLatch(int count) {
	if (count < 0) throw new IllegalArgumentException("count < 0");
	this.sync = new Sync(count);
}

它的构造方法,会传入一个 count 值,用于计数。

5. Semaphore ,需要拿到许可才能执行,并可以选择公平和非公平模式。

0 人点赞