如何从另一个线程获取线程状态?

时间:2016-08-08 19:42:03

标签: java multithreading

我有一个创建线程的类,如:

for (int i = 0; i < t.size(); i++) {
    System.out.println("[Thread] info: " + t.toString());

    r = new rt(t.get(i).getGridPath(), t.get(i).getIdTower());
    Thread rThread = new Thread(r);
    rThread.start();
    pids.add(rThread.getName());         
}     

gUp = new gridUpdate(pids); 
Thread updateGrid = new Thread(gUp);
updateGrid.start();

updateGrid 线程的功能是检查每个rThread的状态是否为TERMINATED。如果是,则updateGrid会执行一系列功能。

如何从 updateGrid 类中获取每个 rThread 的状态?

请注意,我为构造函数传递了线程PID并且在run()方法内部我有这个语句,但总是返回NEW意味着它是新线程。

for (int i = 0; i < pids.size(); i++) {             
    t = new Thread(pids.get(i));                
    System.out.println(t.getState());
}

1 个答案:

答案 0 :(得分:0)

正如@svasa评论的那样,我将List类型从List<String>更改为List<Thread>并将每个Thread添加到List中,如:

pids.add(rThread); 

所以,它完成了!

谢谢@svasa!