主页 > 互联网  > 

java多线程CountDownLatch简单测试

java多线程CountDownLatch简单测试

学习java多线程,请同时参阅    Java多线程 信号量和屏障实现控制并发线程数量,主线程等待所有线程执行完毕1

CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后再继续执行。当所有的线程都已经完成任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。

代码如下:

import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { ExecutorService threadPool= Executors.newFixedThreadPool(10); final CountDownLatch latch = new CountDownLatch(10); for(int i=0;i<10;i++){ threadPool.execute(new Runnable(){ @Override public void run() { try { System.out.println("-----------开始-----j-----" ); System.out.println("------------threadName--j---" + "====" + Thread.currentThread().getName()); Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); }finally { System.out.println("------------threadName--j---" + "==finally==" + Thread.currentThread().getName()); System.out.println("---------完成了------j-----" ); latch.countDown(); } } }); } latch.await(); System.out.println("------------------全部结束------------------" ); } }

运行上面测试代码输出如下:

-----------开始-----j----- -----------开始-----j----- ------------threadName--j---====pool-1-thread-1 -----------开始-----j----- -----------开始-----j----- -----------开始-----j----- ------------threadName--j---====pool-1-thread-3 -----------开始-----j----- -----------开始-----j----- ------------threadName--j---====pool-1-thread-5 -----------开始-----j----- ------------threadName--j---====pool-1-thread-4 ------------threadName--j---====pool-1-thread-6 ------------threadName--j---====pool-1-thread-7 ------------threadName--j---====pool-1-thread-8 -----------开始-----j----- ------------threadName--j---====pool-1-thread-2 -----------开始-----j----- ------------threadName--j---====pool-1-thread-9 ------------threadName--j---====pool-1-thread-10 ------------threadName--j---==finally==pool-1-thread-6 ------------threadName--j---==finally==pool-1-thread-5 ------------threadName--j---==finally==pool-1-thread-8 ---------完成了------j----- ------------threadName--j---==finally==pool-1-thread-1 ---------完成了------j----- ------------threadName--j---==finally==pool-1-thread-3 ---------完成了------j----- ------------threadName--j---==finally==pool-1-thread-2 ---------完成了------j----- ------------threadName--j---==finally==pool-1-thread-10 ---------完成了------j----- ------------threadName--j---==finally==pool-1-thread-7 ---------完成了------j----- ---------完成了------j----- ------------threadName--j---==finally==pool-1-thread-4 ---------完成了------j----- ------------threadName--j---==finally==pool-1-thread-9 ---------完成了------j----- ---------完成了------j----- ------------------全部结束------------------

标签:

java多线程CountDownLatch简单测试由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“java多线程CountDownLatch简单测试