CountDownLatch类位于java.util.concurrent包下,使用CountDownLatch可以实现一个类似计数器的功能。
// 构造参数为计数总量
final CountDownLatch latch = new CountDownLatch(2);
创建一个CountDownLatch的实例,构造其中填入计数总量。
// 在需要监听其他线程运行状态的线程中使用
latch.await();
// 如果超过某个时间后,计数依然没到0,则
await(long timeout, TimeUnit unit);
这个方法会使当前线程进入阻塞状态,直到CountDownLatch的计数值为0。
// 使计数器数值-1,在其他被监听的线程中调用
latch.countDown();
那么写个例子。
package com.wy.test.concurrent;
import java.util.concurrent.CountDownLatch;
public class MyThread implements Runnable {
private final CountDownLatch latch;
public MyThread(CountDownLatch latch){
this.latch = latch;
}
@Override
public