类 java.util.concurrent.CountDownLatch 是一种同步辅助,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。
主要API:
1.CountDownLatch(int count)
构造一个使用给定count初始化的CountDownLatch。
2.countDown()
递减锁存器的计数,如果计数为零,则释放所有等待的线程。
3.await()
导致当前线程等待,直到锁存器计数为零,除非线程被中断。
()
4.boolean await(long timeout, TimeUnit unit)
导致当前线程等待,直到锁存器计数为零,除非线程被中断,或者指定的等待时间已经过了。
返回值:如果计数为零,则为true;如果在计数为零之前等待的时间已经过了,则为false
例子:
import java.util.concurrent.TimeUnit;
/**
* @Auther: tzg
* @Date: 2019/7/8 09:59
* @Description:
*/
public class Test {
private static CountDownLatch latcher = new CountDownLatch(1);
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
latcher.countDown();
System.out.println("count down");
}
});
t.start();
latcher.await();
// latcher.await(1, TimeUnit.SECONDS);
System.out.println("over");
}
}
网友评论