java多线程isalive与否

标签 java multithreading

我用这种方式生成线程,但是在 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/

相关文章:

Java线程模型

java - 如何使用java代码执行FreeSwitch命令

ios - 我应该在哪个线程中发送分析数据

java - 从 CyclicBarrier 中排除特定线程

java - AsyncContext 无限线程终止

java - SQL仅在所有行都满足条件时才选择行

java - 检查文件结尾未按预期工作

来自数据库的 Java JTable 数据

Swing 线程中的 Java 操作

java - 高效地发送多封电子邮件