主线程等待所有子线程执行完毕再执行
- 线程间同步方法
- 互斥信号量Semaphore:主线程申请占用信号量失败阻塞,由子线程释放信号量唤醒。
- 阻塞队列BlockingQueue:主线程尝试从空队列取东西失败阻塞,由子线程放入东西唤醒。
- 条件队列:主线程wait/await在内置或显式的条件队列上,由子线程notify/signal唤醒。
- 使用Thread的join()
- CountDownLatch
- CyclicBarrier
- 用java线程池
- Future的get()方法
- CompletionService的take()方法
- awaitTermination()方法
Java多线程编程:Callable、Future和FutureTask浅析