最近有看到一道笔试题,题目如下:
主线程 启动 十个 子线程, 所有的子线程都执行完成之后,再去执行主线程,请写出执行代码。
使用 CountDownLatch能轻易的实现,代码如下:
1 ) 建立一个线程类:
2 ) 通过使用CountDownLatch阻塞主线程,直到十个子线程都执行完:
执行结果如下:( 子线程 1~10 执行,等到子线程全部都执行完之后,主线程才执行 )
后记:什么情况下使用CountDownLatch,可以参考ImportNew的这篇 ————什么时候使用CountDownLatch
至于CountDownLatch的实现原理以及源码,后面抽时间再研究。