最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談一下Java線程組ThreadGroup

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

1 簡(jiǎn)介

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

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

2 線程組樹的結(jié)構(gòu)

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

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

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

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

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

4 API

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

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

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 終止線程組中的所有線程

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

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

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

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

相關(guān)文章

  • Spring Security UserDetails實(shí)現(xiàn)原理詳解

    Spring Security UserDetails實(shí)現(xiàn)原理詳解

    這篇文章主要介紹了Spring Security UserDetails實(shí)現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java判斷兩個(gè)集合是否具有交集及如何獲得交集詳解

    Java判斷兩個(gè)集合是否具有交集及如何獲得交集詳解

    這篇文章主要給大家介紹了關(guān)于Java判斷兩個(gè)集合是否具有交集及如何獲得交集的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Spring整合Mybatis框架方法剖析

    Spring整合Mybatis框架方法剖析

    這篇文章主要為大家介紹了Spring整合Mybatis框架方法剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • SpringBoot 靜態(tài)資源導(dǎo)入及首頁(yè)設(shè)置問題

    SpringBoot 靜態(tài)資源導(dǎo)入及首頁(yè)設(shè)置問題

    本節(jié)了解一下 SpringBoot 中 Web 開發(fā)的靜態(tài)資源導(dǎo)入和首頁(yè)設(shè)置,對(duì)應(yīng) SpringBoot-03-Web 項(xiàng)目,本節(jié)主要是從源碼的角度,研究了一下靜態(tài)資源導(dǎo)入和首頁(yè)設(shè)置的問題
    2021-09-09
  • Hadoop1.2中配置偽分布式的實(shí)例

    Hadoop1.2中配置偽分布式的實(shí)例

    這篇文章主要介紹了Hadoop1.2中配置偽分布式的實(shí)例,使用的系統(tǒng)是linux mint 15 64bit,hadoop使用的是1.2.1版本,需要的朋友可以參考下
    2014-04-04
  • Spring高級(jí)注解@PropertySource詳細(xì)解讀

    Spring高級(jí)注解@PropertySource詳細(xì)解讀

    這篇文章主要介紹了Spring高級(jí)注解@PropertySource詳細(xì)解讀,@PropertySource注解用于指定資源文件讀取的位置,它不僅能讀取properties文件,也能讀取xml文件,并且通過YAML解析器,配合自定義PropertySourceFactory實(shí)現(xiàn)解析yaml文件,需要的朋友可以參考下
    2023-11-11
  • RabbitMQ中的Channel和Exchange詳解

    RabbitMQ中的Channel和Exchange詳解

    這篇文章主要介紹了RabbitMQ中的Channel和Exchange詳解,創(chuàng)建和銷毀TCP連接很耗時(shí),打開太多TCP連接,耗操作系統(tǒng)資源,并發(fā)量大到一定程度,系統(tǒng)的吞吐量會(huì)降低,使用一個(gè)connection多channel的方式,可以提升連接的利用率,需要的朋友可以參考下
    2023-08-08
  • IDEA啟動(dòng)tomcat控制臺(tái)中文亂碼問題的解決方法(100%有效)

    IDEA啟動(dòng)tomcat控制臺(tái)中文亂碼問題的解決方法(100%有效)

    很多人在idea中啟動(dòng)項(xiàng)目時(shí)會(huì)出現(xiàn)控制臺(tái)的中文亂碼,其實(shí)也無傷大雅,但是本人看著不舒服,下面這篇文章主要給大家介紹了關(guān)于IDEA啟動(dòng)tomcat控制臺(tái)中文亂碼問題的解決方法,需要的朋友可以參考下
    2022-09-09
  • java數(shù)據(jù)結(jié)構(gòu)與算法之奇偶排序算法完整示例

    java數(shù)據(jù)結(jié)構(gòu)與算法之奇偶排序算法完整示例

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之奇偶排序算法,較為詳細(xì)的分析了奇偶算法的原理并結(jié)合完整示例形式給出了實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-08-08
  • Java接口DAO模式代碼原理及應(yīng)用詳解

    Java接口DAO模式代碼原理及應(yīng)用詳解

    這篇文章主要介紹了Java接口DAO模式代碼原理及應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

马边| 全椒县| 图们市| 襄城县| 库伦旗| 芦山县| 德惠市| 扎鲁特旗| 边坝县| 工布江达县| 周至县| 康马县| 温州市| 贵州省| 房产| 濮阳县| 绥化市| 本溪| 东方市| 理塘县| 比如县| 承德县| 棋牌| 方山县| 巢湖市| 扶沟县| 彝良县| 灵丘县| 阿拉善左旗| 仙桃市| 冕宁县| 长顺县| 湖北省| 岳阳市| 泰顺县| 阜南县| 河间市| 奎屯市| 固始县| 连江县| 彝良县|