第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 線程名稱是如何選擇的?

Java 線程名稱是如何選擇的?

動漫人物 2021-11-03 09:58:46
在我的應用程序中,我創(chuàng)建了一些線程(可能很多,但同時活動的線程永遠不會超過 10 個,而且它們沒有做大的工作),并且在它們的執(zhí)行結束時(我在繼續(xù)之前加入它們) ),因為他們在循環(huán)中工作,他們會做一些時間,但即使他們都完成了(加入),當我檢查他們的名字時,Thread-XXX 永遠不會重置,所以我想知道這是否正常,我最初認為當一個線程終止時,它會減少 XXX 數字,但這會增加一些可能沒有用的東西。我已經搜索過 javadoc,但我發(fā)現的只是這個聲明:每個線程都有一個用于識別的名稱。多個線程可能具有相同的名稱。如果在創(chuàng)建線程時未指定名稱,則會為其生成一個新名稱。那么有人知道在線程 1 到 10 結束后以下將命名為 11 和 + 是否正常?提前致謝!編輯:每次我寫我的問題時都很奇怪,然后我在開始寫你好,但由于某種原因它被刪除了我不能在第一個之前添加一行。
查看完整描述

2 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

如果讓 JRE 選擇名稱(不將name參數傳遞給Threadctor),則只需遍歷其代碼:


Thread#Thread() 代碼:


public Thread() {

    init(null, null, "Thread-" + nextThreadNum(), 0);

}

然后看看Thread#nextThreadNum:


/* For autonumbering anonymous threads. */

private static int threadInitNumber;


private static synchronized int nextThreadNum() {

    return threadInitNumber++;

}

你可以看到這threadInitNumber是一個static永遠不會被重置的成員,所以它會隨著應用程序運行而不斷增加。


查看完整回答
反對 回復 2021-11-03
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

如果您使用以下命令創(chuàng)建新線程:


Thread thread = new Thread();

答案是肯定的,至少在環(huán)境方面:


java version "10.0.1" 2018-04-17

Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)

Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

源代碼清楚地顯示了它:


public Thread() {

    init(null, null, "Thread-" + nextThreadNum(), 0);

}


private static synchronized int nextThreadNum() {

    return threadInitNumber++;

}

但這在 API 中并沒有保證,所以如果你真的關心它,你可以自定義一個線程工廠。例如:


import java.util.concurrent.ThreadFactory;


public class DefaultThreadFactory implements ThreadFactory {


    private static int threadInitNumber;


    private static synchronized int nextThreadNum() {

        return threadInitNumber++;

    }



    @Override

    public Thread newThread(Runnable r) {

        return new Thread("Thread-" + nextThreadNum());

    }

}


查看完整回答
反對 回復 2021-11-03
  • 2 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號