方法一
- //创建一个计数器,标记所需执行线程的个数。
CountDownLatch latch = new CountDownLatch(线程个数);
- 线程池采用submit提交Callable任务的方式执行,这样有返回值Future,在线程结束的末尾调用latch.countDown();方法,标识执行完一个值就会减去1
- 等待所有任务提交完成后,调用latch.await(5, TimeUnit.SECONDS);表示等待这些任务5s,没有返回的就不管了。
方法二
- 使用连接池的invokeAll方法,将线程对象放在一个集合里提交。