91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中ThreadGroup的原理和使用方法

發布時間:2021-06-26 09:38:30 來源:億速云 閱讀:211 作者:chen 欄目:大數據

本篇內容主要講解“Java中ThreadGroup的原理和使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java中ThreadGroup的原理和使用方法”吧!

1. 引子

Thread類有多個構造函數,其中一個如下:

public Thread(ThreadGroup group, String name) {
  init(group, null, name, 0);
}

傳入一個ThreadGroup參數,表示當前線程所屬的線程組。源碼中上面的init最終實現如下:

private void init(ThreadGroup g, Runnable target, String name,
                  long stackSize, AccessControlContext acc,
                  boolean inheritThreadLocals) {
  ......
    if (g == null) {
      g = parent.getThreadGroup();
    }
}

可知:如果沒有設置這個線程組,那么創建的線程的線程組即為其父線程的線程組,也就是當前線程。如果當前線程是main線程,main線程的group名字也叫main,那么在main方法中創建的新線程的group也是main。本文就ThreadGroup類進行學習。

2. 創建ThreadGroup

線程有父子之稱,線程組也有父子之稱。

ThreadGroup類的構造函數有:

public ThreadGroup(ThreadGroup parent, String name);
public ThreadGroup(String name) {
    this(Thread.currentThread().getThreadGroup(), name);
}

構造函數可以指定當前創建的線程組的父線程組,如果沒有指定就指定當前線程的線程組作為新創建的線程組的父線程組。

下面是一個demo進行驗證,結果打印為true。

public static void main(String[] args) throws Exception {

  ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();

  ThreadGroup threadGroup1 = new ThreadGroup("threadGroup1");

  System.out.println(threadGroup1.getParent() == threadGroup);

}

2. ThreadGroup復制

一個線程組中可以添加多個線程和子線程組,可以使用其復制方法,復制出這些線程和線程組:

public int enumerate(Thread list[]);
public int enumerate(Thread list[], boolean recurse);

參數recurse為true表示遞歸將所有子線程組中的線程也拷貝到數組中,如果沒有這個參數,默認就是true。

除了拷貝線程組中的線程以外,還可拷貝線程組中的子線程組:

public int enumerate(ThreadGroup list[]);
public int enumerate(ThreadGroup list[], boolean recurse);

recurse意思也是表示是否進行遞歸和拷貝。

3. 總結

線程組不是用來管理線程的,而是針對線程的一次組織。

到此,相信大家對“Java中ThreadGroup的原理和使用方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆德县| 承德县| 明水县| 卓尼县| 鸡泽县| 宽甸| 绥阳县| 安远县| 新巴尔虎右旗| 平谷区| 昌乐县| 宣威市| 营口市| 黄石市| 石景山区| 农安县| 安达市| 衡南县| 禄丰县| 沙雅县| 科技| 巴林右旗| 磐安县| 乐安县| 乌兰浩特市| 桂东县| 阳新县| 芜湖市| 普陀区| 华池县| 聂拉木县| 双桥区| 福清市| 七台河市| 天津市| 三门峡市| 阿尔山市| 麟游县| 彰武县| 安仁县| 永昌县|