主线程结束,子线程还未结束,导致任务执行顺序错乱
解决方案:CountDownLatch伴随着子线程的结束而将自身的任务数递减,到0时主线程再结束
CountDownLatch countDownLatch = new CountDownLatch(5);
for(){
countDownLatch.countDown();
}
if(countDownLatch.getCount() > 0){
countDownLatch.await();
}
文章介绍了如何使用CountDownLatch在Java中解决主线程结束前等待所有子线程完成,确保任务执行顺序的问题。通过countDown()减少计数器,当计数器为0时await()方法阻塞主线程。
主线程结束,子线程还未结束,导致任务执行顺序错乱
解决方案:CountDownLatch伴随着子线程的结束而将自身的任务数递减,到0时主线程再结束
CountDownLatch countDownLatch = new CountDownLatch(5);
for(){
countDownLatch.countDown();
}
if(countDownLatch.getCount() > 0){
countDownLatch.await();
}
3490
2573

被折叠的 条评论
为什么被折叠?