1. CountDownLatch
山寨了一个的实现等待所有子线程结束的轮子,发现JDK已经支持了。CountDownLatch可以实现2种功能,
1) 所有线程都结束时(wait for several threads to complete)
2) 所有线程同时开始(coordinate the starting of threads)
具体例子参考:http://www.javamex.com/tutorials/threads/CountDownLatch.shtml
2. CyclicBarrier
原来每天中午吃饭的模型是CyclicBarrier,等所有的人(线程)完成自己的活后,然后大家一起去吃饭。
例子:http://www.iteye.com/topic/657295 回复中的吃饭demo。
参考:
1) http://markusjais.com/how-to-use-java-util-concurrent-countdownlatch/