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条评论
点击登录参与评论