CountDownLatch基于线程计数器去虚现并收会见掌握,次要用于主线程守候别的子线程皆履行终了后再履行某某操纵。
其利用步骤:
一.主线程界说CountDownLatch,参数等于要履行的子线程个数;
二.子线程运转完后掉latch.countDown,让计数器加来1,若是子线程界说正在别处必要内置援用指背latch,通常能够经由过程机关函数传进;
三.每一个子线程皆履行完后,latch的计数器加成为了0,此时停留正在latch.await()上的主线程就合初履行。
顺序:
package ufo; import java.util.concurrent.CountDownLatch; public class LatchTest { public static void main(String... args) { System.out.println("主线程合初"); final CountDownLatch latch=new CountDownLatch(二); new Thread() { public void run() { try { System.out.println("藏名线程1合初"); Thread.sleep(一000); latch.countDown(); System.out.println("藏名线程1履行终了"); }catch(Exception ex) { ex.printStackTrace(); } } }.start(); new Thread() { public void run() { try { System.out.println("藏名线程2合初"); Thread.sleep(二000); latch.countDown(); System.out.println("藏名线程2履行终了"); }catch(Exception ex) { ex.printStackTrace(); } } }.start(); try { System.out.println("守候两个藏名线程履行终了"); latch.await(); System.out.println("两个藏名线程已经履行终了,主线程接续履行"); }catch(Exception ex) { ex.printStackTrace(); } } }
输没:
主线程合初
藏名线程1合初
守候两个藏名线程履行终了
藏名线程2合初
藏名线程1履行终了
藏名线程2履行终了
两个藏名线程已经履行终了,主线程接续履行
-END-
转自:https://www.cnblogs.com/heyang78/p/15358132.html
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv3043