java怎么判断线程结束 您所在的位置:网站首页 怎么判断一个线程是否结束 java怎么判断线程结束

java怎么判断线程结束

2024-03-10 13:27| 来源: 网络整理| 查看: 265

1.join()

如果是一个线程,可以使用此方法,多个不合适

2.CountDownLatch

此为并发计数器,每个线程结束后减一(countDown()),countDownLatch.await();//等待所有子线程执行完

3.线程池ThreadPoolExecutor的shutdown与awaitTermination方法

executor.shutdown();//只是不能再提交新任务,等待执行的任务不受影响

try {

boolean loop = true;

do {    //等待所有任务完成

loop = !executor.awaitTermination(2, TimeUnit.SECONDS);  //阻塞,直到线程池里所有任务结束

} while(loop);

} catch (InterruptedException e) {

e.printStackTrace();

}

service.shutdown();

while(!service.awaitTermination(2, TimeUnit.SECONDS)){

System.out.println("service not stop");

}

//或者isTerminated,如果关闭后所有任务都已完成,则返回 true。注意,除非首先调用 shutdown 或 shutdownNow,否则 isTerminated 永不为 true。

executor.shutdown();//只是不能再提交新任务,等待执行的任务不受影响

while(true){

if(exe.isTerminated()){

System.out.println("所有的子线程都结束了!");

break;

}

Thread.sleep(1000);

}

ThreadPoolExecutor.getActiveCount() == 0   ?



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有