电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java 判斷線程池所有任務是否執行完畢的操作

瀏覽:121日期:2022-08-26 15:30:38

我就廢話不多說了,大家還是直接看代碼吧~

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test { public static void main(String args[]) throws InterruptedException { ExecutorService exe = Executors.newFixedThreadPool(3); 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打印出來;

public class SubThread extends Thread{ private final int i; public SubThread(int i){ this.i = i; } @Override public void run(){ System.out.println(i); } }

執行結果:

3

1

4

5

2

結束了!

成功構建 (總時間: 2 秒)

子線程執行順序不能控制,所以輸出的結果是亂序的。

補充知識:java如何禁掉反射

SecurityManager

有一個checkMemberAccess這個方法可以阻止利用反射;

如:

SecurityManager sm = new SecurityManager();

sm.checkMemberAccess(Test.class, Member.PUBLIC);

前面一個為CLASS,后面需要填一個INT值,Member.PUBLIC 代表可以訪問,

如果是PUBLIC,反射可以執行,DECLARED,反射運行時,會報錯。

SecurityManager另外一個例子:

package com.jd.basic.pk.manager;import java.lang.reflect.Field;import java.security.Permission;public class UseReflection { static { try { System.setSecurityManager(new MySecurityManager()); } catch (SecurityException se) { System.out.println('SecurityManager already set!'); } } public static void main(String args[]) { Object prey = new Prey(); try { Field pf = prey.getClass().getDeclaredField('privateString'); pf.setAccessible(true); pf.set(prey, 'Aminur test'); System.out.println(pf.get(prey)); } catch (Exception e) { System.err.println('Caught exception ' + e.toString()); } }}class Prey { @SuppressWarnings('unused') private String privateString = 'privateValue';}class MySecurityManager extends SecurityManager { public void checkPermission(Permission perm) { if (perm.getName().equals('suppressAccessChecks')) { throw new SecurityException('Can not change the permission dude.!'); } }}

以上這篇Java 判斷線程池所有任務是否執行完畢的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 国际金融网_每日财经新资讯网 | 山东彩钢板房,山东彩钢活动房,临沂彩钢房-临沂市贵通钢结构工程有限公司 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | LED显示屏_LED屏方案设计精准报价专业安装丨四川诺显科技 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 山东包装,山东印刷厂,济南印刷厂-济南富丽彩印刷有限公司 | 14米地磅厂家价价格,150吨地磅厂家价格-百科| 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 | 威廉希尔WilliamHill·足球(中国)体育官方网站 | 阜阳成人高考_阜阳成考报名时间_安徽省成人高考网 | 北京模型公司-工业模型-地产模型-施工模型-北京渝峰时代沙盘模型制作公司 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 卸料器-卸灰阀-卸料阀-瑞安市天蓝环保设备有限公司 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 涡轮流量计_LWGY智能气体液体电池供电计量表-金湖凯铭仪表有限公司 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | SMN-1/SMN-A ABB抽屉开关柜触头夹紧力检测仪-SMN-B/SMN-C-上海徐吉 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 网站优化公司_SEO优化_北京关键词百度快速排名-智恒博网络 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | TMT观察网_独特视角观察TMT行业 派财经_聚焦数字经济内容服务平台 | 上海办公室装修,办公楼装修设计,办公空间设计,企业展厅设计_写艺装饰公司 | 地磅-地秤-江阴/无锡地磅-江阴天亿计量设备有限公司_ | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 |