首页 > 代码库 > 线程:CountDownLatch同步工具
线程:CountDownLatch同步工具
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
类似计数器,当计数器的值为0时,继续往下执行。
1 package ch03; 2 3 import java.util.Random; 4 import java.util.concurrent.CountDownLatch; 5 import java.util.concurrent.ExecutorService; 6 import java.util.concurrent.Executors; 7 8 public class CountDownLatchTest { 9 10 public static void main(String[] args) { 11 ExecutorService threadPool = Executors.newCachedThreadPool(); 12 //初始值设置为2 13 final CountDownLatch latch = new CountDownLatch(2); 14 for(int i=0; i<2; i++){ 15 Runnable runnable = new Runnable() { 16 17 @Override 18 public void run() { 19 try { 20 Thread.sleep(new Random().nextInt(6000)); 21 System.out.println("子线程执行。。。"); 22 //计数器自减 23 latch.countDown(); 24 } catch (Exception e) { 25 e.printStackTrace(); 26 } 27 } 28 }; 29 threadPool.execute(runnable); 30 } 31 32 try { 33 //等待计数器自减到0,然后再往下执行。 34 latch.await(); 35 } catch (InterruptedException e) { 36 e.printStackTrace(); 37 } 38 System.out.println("主线程...."); 39 } 40 41 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。