最近写一个多线程程序,老是MAIN方法执行完了子线程还没执行完(不知道以前怎么玩儿的),得不到最终结果,于是找到了CountDownLatch
CountDownLatch是一个同步辅助类,java.util.concurrent.CountDownLatch,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。
一个线程(或者多个), 等待另外N个线程完成某个事情之后才能执行
主要方法:
public void countDown()
public boolean await(long timeout,TimeUnit unit) throws InterrupterdException
详细可以参考:http://blog.csdn.net/shihuacai/article/details/8856370