CountDownLatch可以让一个线程,等待其他所有线程执行结束之后再执行
通过一个计数器,计数器的初始值是初始线程数量,每执行一个线程,线程计数器减一,直到线程计数器的值为0.
代码实现:
package com.wanmai.demo;
public class Test {
public static void main(String[] args) throws InterruptedException {
//设置初始线程数量 初始线程数量为10
CountDownLatch latch = new CountDownLatch(10);
//匿名内部类
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("执行一般线程")
//线程执行,计数器-1
latch.countDown(); // 当前线程调用此方法,则计数减一
}
};
//同时启动多个线程
for (int i = 0; i < 10; i++) {
new Thread(runnable).start();
//创建10个线程 并启动线程
}
latch.await(); // 阻塞当前主线程,直到计数器的值为0,直到10个线程执行结束
System.out.println("执行主线程");
}
}

0条评论
点击登录参与评论