Java多线程,判断其他线程是否结束的方法 您所在的位置:网站首页 怎样判断线程是否结束的方法是正确的还是错误 Java多线程,判断其他线程是否结束的方法

Java多线程,判断其他线程是否结束的方法

2024-06-19 02:08| 来源: 网络整理| 查看: 265

方法1:通过Thread类中的isAlive()方法判断线程是否处于活动状态。

线程启动后,只要没有运行完毕,都会返回true。

【注】如果只是要等其他线程运行结束之后再继续操作,可以执行t.join(),即:在t执行完毕前挂起。

 

方法2:通过Thread.activeCount()方法判断当前线程的线程组中活动线程的数目,为1时其他线程运行完毕。

 

方法3:通过java.util.concurrent.Executors中的方法创建一个线程池,用这个线程池来启动线程。启动所有要启动的线程后,执行线程池的shutdown()方法,即在所有线程执行完毕后关闭线程池。然后通过线程池的isTerminated()方法,判断线程池是否已经关闭。线程池成功关闭,就意味着所有线程已经运行完毕了。

示例代码:

1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 4 public class Test { 5 6 public static void main(String args[]) throws InterruptedException { 7 ExecutorService exe = Executors.newFixedThreadPool(50); 8 for (int i = 1; i 0,循环内容为wait()。则所有线程运行结束后正好while循环结束。 致命缺陷:如果几个线程同时运行结束,有可能在主线程还没运行时,已经执行了好几次notify()方法。如果这样的话,while循环就永远不会结束了,主线程一直wait()下去。 一个思路


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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