问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java如何判断线程池所有任务是否执行

发布网友 发布时间:2022-04-23 01:57

我来回答

1个回答

热心网友 时间:2023-05-14 05:22

package csdn;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @author nineday
*/
public class Test {
public static void main(String args[]) throws InterruptedException {
ExecutorService exe = Executors.newFixedThreadPool(50);
for (int i = 1; i <= 5; i++) {
exe.execute(new SubThread(i));
}
exe.shutdown();
while (true) {
if (exe.isTerminated()) {
System.out.println("结束了!");
break;
}
Thread.sleep(200);
}
}
}
上面是主线程的代码,创建了一个能同时执行2个线程的线程池,并投入5个线程,当5个线程都执行完毕后打印---“结束了!”字符串。
exe.shutdown();该方法在加入线程队列的线程执行完之前不会执行。
exe.isTerminated();当shutdown()或者shutdownNow()执行了之后才会执行,并返回true。
在上面的代码中必须有exe.isTerminated()的判断,否则在投入5个线程到线程池后会直接打印:“结束了”。不能达到我们想要的效果。
通过while(true)循环判断exe.isTerminated()重生之大文豪的值,为了防止过多的判断浪费资源,可设置线程睡眠Thread.sleep(200);
正是由于这个睡眠,所以当所有线程池中的线程都执行完后,有可能延迟200ms才执行"结束了"语句。这个参数越小延迟越小,结果越准确。
下面是子线程,子线程只是简单的将数字i打印出来;
[java] view plaincopy
package csdn;
/**
* @author nineday
*/
public class SubThread extends Thread{
private final int i;
public SubThread(int i){
this.i = i;
}
@Override
public void run(){
System.out.println(i);
}
}
执行结果:
[plain] view plaincopy
run:
3
1
4
5
2
结束了!
成功构建 (总时间: 2 秒)
子线程执行顺序不能控制,所以输出的结果是乱序的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 中林集团张掖金象种业有限公司怎么样? 查看Java哪个线程占用CPU资源 山东中林建设股份有限公司怎么样? 里僵尸粉什么意思啊? 淘宝收到宝贝评价完之后,怎样能看到自己评价的内容? 江西中林集团有限公司一级以上的资质类型都有哪些? linux 启动tomcat运行后 有多个进程 线程池 中林国控实业集团有限公司怎么样? 中林集团雷州林业局有限公司遂溪林场分公司怎么样? 中林集团北京国际贸易有限公司怎么样? 中林石油和中国石油区别? 怎么通过linux命令去分析jvm里面那个线程阻塞了 中林集团职工有编制吗 java 线程总数如何查看 中国林业集团怎么样 中林五旗充电棚好久解封 中国林业集团公司 是正局级吗 linux查看java线程,怎么回收无用的线程 中林五旗充电棚充电棚被封了吗交了钱可以拿回来吗 中林集团是央企吗 微信里啥叫清理僵尸粉?。。 中林集团福建宜森实业有限公司怎么样? 微信清理僵尸粉安全吗? 北京中林投资有限公司怎么样? linux下如何知道JAVA_HOME的目录在哪里?什么命令? 鞋子脱胶了怎么办?教你自制鞋胶,牢固又实用,还能省下不少钱! 中林实业控股有限公司怎么样? 中林企业(砀山)有限公司怎么样? 僵尸粉是什么意思 鞋子开胶就扔掉?从老鞋匠学的绝招,再也不担心鞋子开胶了,实用 家庭简单自制胶水 粘鞋 java的多线程与linux的多线程的关系 鞋子开胶别着急,教你自制强力鞋胶,粘的无痕又牢靠,简单又实用 死粉是什么意思啊?有人给我微信发了一条信息清死粉,不知道什么意思? 自制胶水粘鞋:在家制作强烈粘鞋万能胶,永不开胶,好用到尖叫 微信清理僵尸粉有何意义? 鞋子开胶可别丢用牙膏就可以自制万能鞋胶,鞋子穿10年也不会开胶 谁知道贴吧里的标题怎么设置? 微信上清除僵尸粉是真的吗 怎么在贴吧上发主题帖子