java 主线程等待线程池任务执行完成再往下执行
时间: 2023-10-27 15:28:51 浏览: 118
Java主线程等待子线程执行完毕
4星 · 用户满意度95%
当主线程需要等待线程池任务执行完成后再往下执行的情况下,可以通过使用CountDownLatch或Future来实现。
如果使用CountDownLatch,可以在主线程中创建一个CountDownLatch对象,并设置它的计数器值为线程池中任务的数量。每一个任务执行完成后,都将计数器的值减1。主线程可以通过调用CountDownLatch.await()方法来等待所有任务完成。当计数器的值变为0时,await()方法会返回,主线程就可以继续执行后续操作。
如果使用Future,可以在主线程中提交所有任务到线程池,并将返回的Future对象保存在一个列表中。主线程可以通过Future的get()方法来等待任务执行完成。当所有任务都执行完成后,主线程就可以继续执行后续操作。
需要注意的是,在使用线程池的过程中,一定要及时释放线程资源,避免线程泄漏。同时,合理地设置线程池的大小和配置项,也可以提高程序的执行效率。
阅读全文