亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談一下Java線(xiàn)程組ThreadGroup

 更新時(shí)間:2023年05月09日 09:11:32   作者:JavaEdge.  
ThreadGroup是為了方便線(xiàn)程管理出現(xiàn)了,可以統(tǒng)一設(shè)定線(xiàn)程組的一些屬性,比如setDaemon,設(shè)置未處理異常的處理方法,設(shè)置統(tǒng)一的安全策略等等,需要的朋友可以參考下

1 簡(jiǎn)介

一個(gè)線(xiàn)程集合。是為了更方便地管理線(xiàn)程。父子結(jié)構(gòu)的,一個(gè)線(xiàn)程組可以集成其他線(xiàn)程組,同時(shí)也可以擁有其他子線(xiàn)程組。

從結(jié)構(gòu)上看,線(xiàn)程組是一個(gè)樹(shù)形結(jié)構(gòu),每個(gè)線(xiàn)程都隸屬于一個(gè)線(xiàn)程組,線(xiàn)程組又有父線(xiàn)程組,根線(xiàn)程組——System線(xiàn)程組。

2 線(xiàn)程組樹(shù)的結(jié)構(gòu)

  • JVM創(chuàng)建的system線(xiàn)程組是用來(lái)處理JVM的系統(tǒng)任務(wù)的線(xiàn)程組,例如對(duì)象的銷(xiāo)毀等
  • system線(xiàn)程組的直接子線(xiàn)程組是main線(xiàn)程組,這個(gè)線(xiàn)程組至少包含一個(gè)main線(xiàn)程,用于執(zhí)行main方法
  • main線(xiàn)程組的子線(xiàn)程組就是應(yīng)用程序創(chuàng)建的線(xiàn)程組。

一個(gè)線(xiàn)程可以訪問(wèn)其所屬線(xiàn)程組的信息,但不能訪問(wèn)其所屬線(xiàn)程組的父線(xiàn)程組或者其他線(xiàn)程組的信息。

3 線(xiàn)程組的構(gòu)造

java.lang.ThreadGroup 提供了兩個(gè)構(gòu)造函數(shù):

ConstructorDescription
ThreadGroup(String name)根據(jù)線(xiàn)程組名稱(chēng)創(chuàng)建線(xiàn)程組,其父線(xiàn)程組為main線(xiàn)程組
ThreadGroup(ThreadGroup parent, String name)根據(jù)線(xiàn)程組名稱(chēng)創(chuàng)建線(xiàn)程組,其父線(xiàn)程組為指定的parent線(xiàn)程組
  • 兩個(gè)構(gòu)造函數(shù)的用法: 

4 API

1.public ThreadGroup(ThreadGroup parent, String name)
分析:構(gòu)建一個(gè)新的線(xiàn)程組,這個(gè)新組的父級(jí)是當(dāng)前正在運(yùn)行的線(xiàn)程的線(xiàn)程組;
2.public ThreadGroup(ThreadGroup parent, String name)
分析:構(gòu)建一個(gè)新的線(xiàn)程組,這個(gè)新租的父級(jí)是指定的線(xiàn)程組;
3.public int activeCount()
分析:返回此線(xiàn)程組及其子組中活動(dòng)線(xiàn)程的數(shù)量的估計(jì)值,遞歸遍歷該線(xiàn)程組中所有的子組;
返回的值只是一個(gè)估計(jì)值,因?yàn)橛眠@種方法遍歷內(nèi)部數(shù)據(jù)結(jié)構(gòu)因?yàn)榫€(xiàn)程的數(shù)量可能會(huì)動(dòng)態(tài)發(fā)生變化,并且可能會(huì)受到某些系統(tǒng)線(xiàn)程的影響,此方法主要用于調(diào)試和監(jiān)視目的;
4.public int activeGroupCount()
分析:返回此線(xiàn)程組及其子組中活動(dòng)組的數(shù)目的估計(jì)值。遞歸遍歷該線(xiàn)程組中的所有子群。返回的值只是一個(gè)估計(jì)值,因?yàn)榫€(xiàn)程組的數(shù)量可能會(huì)動(dòng)態(tài)變化,而這種方法遍歷內(nèi)部數(shù)據(jù)結(jié)構(gòu)。此方法主要用于調(diào)試和監(jiān)視目的。
5.public final void checkAccess()
分析:確定當(dāng)前運(yùn)行的線(xiàn)程是否具有修改此線(xiàn)程組的權(quán)限。
如果存在安全管理器,它的checkaccess方法調(diào)用這個(gè)線(xiàn)程組作為其參數(shù)。這可能會(huì)導(dǎo)致拋出SecurityException。
6.public final void destroy()
分析:破壞此線(xiàn)程組及其所有子組,此線(xiàn)程組必須為空,表示此線(xiàn)程組中的所有線(xiàn)程必須都停止;
7.public int enumerate(Thread[] list)
分析:將這個(gè)線(xiàn)程組復(fù)制到它所在的組及其子組中;
8.public int enumerate(Thread[] list, boolean recurse)
分析:將這個(gè)線(xiàn)程組復(fù)制到它所在的線(xiàn)程組,如果recurse是true,此方法遞歸枚舉此線(xiàn)程組的所有子組,并對(duì)這些子組中的每個(gè)活動(dòng)線(xiàn)程進(jìn)行引用。如果數(shù)組太短無(wú)法保存所有的線(xiàn)程,額外的線(xiàn)程將被默默的忽略;
9.public int enumerate(ThreadGroup[] list)
分析:復(fù)制線(xiàn)程組中的活躍線(xiàn)程引用到它當(dāng)前線(xiàn)程組及其子組中;
10.public int enumerate(ThreadGroup[] list, boolean recurse)
分析:復(fù)制線(xiàn)程組中的活躍線(xiàn)程引用到它當(dāng)前線(xiàn)程組及其子組中,如果recurse是true,此方法遞歸枚舉此線(xiàn)程組的所有子組,并對(duì)這些子組中的每個(gè)活動(dòng)線(xiàn)程組進(jìn)行引用。
11.public final int getMaxPriority()
分析:返回此線(xiàn)程組的最大優(yōu)先級(jí)。作為該組的一部分的線(xiàn)程不能具有比優(yōu)先級(jí)最高的優(yōu)先級(jí)。
12.public final String getName()
分析:返回此線(xiàn)程組的名稱(chēng);
13.public final ThreadGroup getParent()
分析:返回此線(xiàn)程組的父級(jí);
14.public final void interrupt()
分析:終端此線(xiàn)程組中的所有線(xiàn)程;
15.public final boolean isDaemon()
分析:測(cè)試此線(xiàn)程組是否是守護(hù)線(xiàn)程組。當(dāng)終止最后一個(gè)線(xiàn)程或它的最后一個(gè)線(xiàn)程組被銷(xiāo)毀時(shí),守護(hù)線(xiàn)程組會(huì)自動(dòng)銷(xiāo)毀;
16.public boolean isDestroyed()
分析:測(cè)試此線(xiàn)程組是否已被銷(xiāo)毀;
17.public void list()
分析:將此線(xiàn)程組的信息打印到標(biāo)準(zhǔn)輸出。此方法僅用于調(diào)試。
18.public final boolean parentOf(ThreadGroup g)
分析:測(cè)試此線(xiàn)程組是線(xiàn)程組參數(shù)還是其祖先線(xiàn)程組之一;
19.public final void setDaemon(boolean daemon)
分析:更改此線(xiàn)程組的守護(hù)進(jìn)程狀態(tài);
20.public final void setMaxPriority(int pri)
分析:設(shè)置組的最大優(yōu)先級(jí)。線(xiàn)程組中具有較高優(yōu)先級(jí)的線(xiàn)程不會(huì)受到影響

查看當(dāng)前線(xiàn)程組的信息。

public static void list(){
		ThreadGroup tg = new ThreadGroup ("subgroup 1");
		Thread t1 = new Thread (tg, "thread 1");
		Thread t2 = new Thread (tg, "thread 2");
		Thread t3 = new Thread (tg, "thread 3");
		tg = new ThreadGroup ("subgroup 2");
		Thread t4 = new Thread (tg, "my thread");
		tg = Thread.currentThread ().getThreadGroup ();
		int agc = tg.activeGroupCount ();
		System.out.println ("Active thread groups in " + tg.getName () + " thread group: " + agc);
		tg.list ();
}

輸出如下:

Active thread groups in main thread group: 2
java.lang.ThreadGroup[name=main,maxpri=10]
    Thread[main,5,main]
    java.lang.ThreadGroup[name=subgroup 1,maxpri=10]
    java.lang.ThreadGroup[name=subgroup 2,maxpri=10]

5 終止線(xiàn)程組中的所有線(xiàn)程

一個(gè)線(xiàn)程不應(yīng)由其他線(xiàn)程來(lái)強(qiáng)制中斷或停止,而是應(yīng)該由線(xiàn)程自己自行停止。

因此 Thread.currentThread().stop(), Thread.currentThread().suspend(), Thread.currentThread().resume() 都已經(jīng)被廢棄了。

interrupt() 方法的作用是通知線(xiàn)程應(yīng)該中斷了,具體到底中斷還是繼續(xù)運(yùn)行,由被通知的線(xiàn)程處理。

到此這篇關(guān)于淺談一下Java線(xiàn)程組ThreadGroup的文章就介紹到這了,更多相關(guān)Java線(xiàn)程組ThreadGroup內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)俄羅斯方塊小游戲源碼

    Java實(shí)現(xiàn)俄羅斯方塊小游戲源碼

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)俄羅斯方塊小游戲源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Hibernate中實(shí)現(xiàn)增刪改查的步驟詳解

    Hibernate中實(shí)現(xiàn)增刪改查的步驟詳解

    本篇文章主要介紹了Hibernate中實(shí)現(xiàn)增刪改查的步驟與方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • SpringBoot是如何實(shí)現(xiàn)自動(dòng)配置的你知道嗎

    SpringBoot是如何實(shí)現(xiàn)自動(dòng)配置的你知道嗎

    這篇文章主要介紹了詳解SpringBoot自動(dòng)配置原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-08-08
  • Java concurrency集合之ConcurrentSkipListSet_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java concurrency集合之ConcurrentSkipListSet_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了Java concurrency集合之ConcurrentSkipListSet的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • springboot中使用redis的方法代碼詳解

    springboot中使用redis的方法代碼詳解

    ​redis 作為一個(gè)高性能的內(nèi)存數(shù)據(jù)庫(kù),如果不會(huì)用就太落伍了,之前在 node.js 中用過(guò) redis,本篇記錄如何將 redis 集成到 spring boot 中。感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • springboot整合騰訊云短信開(kāi)箱即用的示例代碼

    springboot整合騰訊云短信開(kāi)箱即用的示例代碼

    這篇文章主要介紹了springboot整合騰訊云短信開(kāi)箱即用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • JavaWeb評(píng)論功能實(shí)現(xiàn)步驟以及代碼實(shí)例

    JavaWeb評(píng)論功能實(shí)現(xiàn)步驟以及代碼實(shí)例

    項(xiàng)目初始版本上線(xiàn),有時(shí)間寫(xiě)點(diǎn)東西記錄一下項(xiàng)目中的心得體會(huì),通過(guò)這個(gè)項(xiàng)目學(xué)習(xí)了很多,要寫(xiě)下來(lái)的有很多,先從評(píng)論功能開(kāi)始吧,下面這篇文章主要給大家介紹了關(guān)于JavaWeb評(píng)論功能實(shí)現(xiàn)步驟以及代碼的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • java實(shí)現(xiàn)html轉(zhuǎn)pdf方法步驟

    java實(shí)現(xiàn)html轉(zhuǎn)pdf方法步驟

    這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)html轉(zhuǎn)pdf方法的相關(guān)資料,要將HTML轉(zhuǎn)換成PDF,我們需要借助Java中的第三方庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • Windows環(huán)境IDEA下Ranger1.2.0源碼編譯詳細(xì)流程

    Windows環(huán)境IDEA下Ranger1.2.0源碼編譯詳細(xì)流程

    本文給大家講解Windows環(huán)境IDEA下Ranger1.2.0源碼編譯過(guò)程,通過(guò)配置Tomcat,發(fā)布?security-admin-web項(xiàng)目,編譯啟動(dòng)tomcat即可完成,需要的朋友參考下
    2021-06-06
  • SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法詳解

    SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法詳解

    Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開(kāi)發(fā)框架,本質(zhì)上相當(dāng)于 Servlet,Spring MVC 角色劃分清晰,分工明細(xì),這篇文章主要介紹了SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法
    2022-09-09

最新評(píng)論