我用这种方式生成线程,但是在 for 循环之后如何检查所有线程是否存活
进一步的处理取决于所有线程
如果线程已死
,则进行进一步的处理
for (int i = 0;i<List.size();i++) {
if(List.get(i).trim().length() >0 ){
Thread thread = new Thread("Thread"+i){
public void run(){
threading(List.get(i),ctx,userSesionObj);
}
};
thread.start();
}
}
这里 threading
是我的函数,它对我传递的不同数据执行
最佳答案
您可以使用 ExecutorService .事实上,我强烈推荐这个。您可以指定不同的线程行为等。执行程序将返回 Future。每个提交线程的对象,然后您可以遍历每个 Future
收集结果。所以如下:
for (Future f : futures) {
f.get(); // get a result here...
}
将在所有 Futures
返回数据时完成(即当线程完成时)。 Executor API 的工作级别高于 join()
/notify()
等,使用起来更安全。
这里有很多功能可以使用,我推荐 tutorials .
关于java多线程isalive与否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12638038/