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

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

Java線程優先級和守護線程原理解析

瀏覽:111日期:2022-09-03 17:56:27

一、線程優先級的介紹

java 中的線程優先級的范圍是1~10,默認的優先級是5。“高優先級線程”會優先于“低優先級線程”執行。

java 中有兩種線程:用戶線程和守護線程。可以通過isDaemon()方法來區別它們:如果返回false,則說明該線程是“用戶線程”;否則就是“守護線程”。用戶線程一般用于執行用戶級任務,而守護線程也就是“后臺線程”,一般用來執行后臺任務。需要注意的是:Java虛擬機在“用戶線程”都結束后會后退出。

JDK 中關于線程優先級和守護線程的介紹如下:

每個線程都有一個優先級。“高優先級線程”會優先于“低優先級線程”執行。每個線程都可以被標記為一個守護進程或非守護進程。在一些運行的主線程中創建新的子線程時,子線程的優先級被設置為等于“創建它的主線程的優先級”,當且僅當“創建它的主線程是守護線程”時“子線程才會是守護線程”。

當Java虛擬機啟動時,通常有一個單一的非守護線程(該線程通過是通過main()方法啟動)。JVM會一直運行直到下面的任意一個條件發生,JVM就會終止運行:

(01) 調用了exit()方法,并且exit()有權限被正常執行。

(02) 所有的“非守護線程”都死了(即JVM中僅僅只有“守護線程”)。

每一個線程都被標記為“守護線程”或“用戶線程”。當只有守護線程運行時,JVM會自動退出。

二、線程優先級的示例

我們先看看優先級的示例 :

package com.demo.threadPriority;public class MyThread extends Thread{ public MyThread(String name) { super(name); } public void run(){ for (int i=0; i<5; i++) { System.out.println(Thread.currentThread().getName() +'('+Thread.currentThread().getPriority()+ ')' +', loop '+i); } } }

package com.demo.threadPriority;public class Demo { public static void main(String[] args) { System.out.println(Thread.currentThread().getName()+'('+Thread.currentThread().getPriority()+ ')'); Thread t1=new MyThread('t1'); // 新建t1 Thread t2=new MyThread('t2'); // 新建t2 t1.setPriority(1);// 設置t1的優先級為1 t2.setPriority(10); // 設置t2的優先級為10 t1.start(); // 啟動t1 t2.start(); // 啟動t2 } }

運行結果:

main(5)t1(1), loop 0t1(1), loop 1t2(10), loop 0t1(1), loop 2t2(10), loop 1t1(1), loop 3t2(10), loop 2t1(1), loop 4t2(10), loop 3t2(10), loop 4

結果說明:

(01) 主線程main的優先級是5。

(02) t1的優先級被設為1,而t2的優先級被設為10。cpu在執行t1和t2的時候,根據時間片輪循調度,所以能夠并發執行。

三、守護線程的示例

下面是守護線程的示例。

package com.demo.daemonThread;public class MyThread extends Thread{ public MyThread(String name) { super(name); } public void run(){ try { for (int i=0; i<5; i++) {Thread.sleep(3);System.out.println(this.getName() +'(isDaemon='+this.isDaemon()+ ')' +', loop '+i); } } catch (InterruptedException e) { } } }

package com.demo.daemonThread;public class MyDaemon extends Thread{ public MyDaemon(String name) { super(name); } public void run(){ try { for (int i=0; i<10000; i++) {Thread.sleep(1);System.out.println(this.getName() +'(isDaemon='+this.isDaemon()+ ')' +', loop '+i); } } catch (InterruptedException e) { } } }

package com.demo.daemonThread;public class Demo { public static void main(String[] args) { System.out.println(Thread.currentThread().getName()+'(isDaemon='+Thread.currentThread().isDaemon()+ ')'); Thread t1=new MyThread('t1'); // 新建t1 Thread t2=new MyDaemon('t2'); // 新建t2 t2.setDaemon(true); // 設置t2為守護線程 t1.start(); // 啟動t1 t2.start(); // 啟動t2 } }

運行結果:

main(isDaemon=false)t2(isDaemon=true), loop 0t2(isDaemon=true), loop 1t1(isDaemon=false), loop 0t2(isDaemon=true), loop 2t1(isDaemon=false), loop 1t2(isDaemon=true), loop 3t2(isDaemon=true), loop 4t1(isDaemon=false), loop 2t2(isDaemon=true), loop 5t2(isDaemon=true), loop 6t1(isDaemon=false), loop 3t2(isDaemon=true), loop 7t2(isDaemon=true), loop 8t2(isDaemon=true), loop 9t1(isDaemon=false), loop 4

結果說明:

(01) 主線程main是用戶線程,它創建的子線程t1也是用戶線程。

(02) t2是守護線程。在“主線程main”和“子線程t1”(它們都是用戶線程)執行完畢,只剩t2這個守護線程的時候,JVM自動退出。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 千淘酒店差旅平台-中国第一家针对TMC行业的酒店资源供应平台 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 咖啡加盟-咖啡店加盟-咖啡西餐厅加盟-塞纳左岸咖啡西餐厅官网 | 楼承板-钢筋楼承板-闭口楼承板-无锡优贝斯楼承板厂 | 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 有声小说,听书,听小说资源库-听世界网 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 威廉希尔WilliamHill·足球(中国)体育官方网站| COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 最新电影-好看的电视剧大全-朝夕电影网 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 内六角扳手「厂家」-温州市威豪五金工具有限公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 |