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

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

為什么有兩個運行線程而不是一個?

為什么有兩個運行線程而不是一個?

米琪卡哇伊 2023-06-08 19:42:05
所以在下面:public class JavaClass {    public static void main(String[] args) {        JavaClass clazz = new JavaClass();        clazz.startCustomThread();        clazz = new JavaClass();        clazz.startCustomThread();    }    public void startCustomThread() {        new MyThread().startThread();    }    private static class MyThread {        public void startThread() {            new Thread(() -> {                System.out.println("In thread " + Thread.currentThread().getName());                while (true) {                    try {                        Thread.sleep(1000 * 5);                        System.out.println("Woke up " + Thread.currentThread().getName());                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            }).start();        }    }}輸出是:In thread Thread-1In thread Thread-0Woke up Thread-0Woke up Thread-1....  由于clazz應(yīng)該在第二個實例之后進行 GC,并且第一個線程在第一次調(diào)用的本地范圍內(nèi)啟動,所以startCustomThread()我的問題是為什么第一個線程沒有終止?
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

如果您具體詢問為什么JavaClass對象未被 GC 處理。它可能是(取決于 VM 參數(shù))。

如果您問為什么該對象生成的線程繼續(xù)運行,那是因為它創(chuàng)建了一個新線程Thread并運行它。這只會在run()方法正常完成或被System.exit()調(diào)用時完成。


查看完整回答
反對 回復(fù) 2023-06-08
?
DIEA

TA貢獻1820條經(jīng)驗 獲得超3個贊

您調(diào)用了startCustomThread兩次方法,因此啟動了 2 個線程。

來自Thread文檔:

Java 虛擬機繼續(xù)執(zhí)行線程,直到發(fā)生以下任一情況:

  1. 已調(diào)用 Runtime 類的退出方法,安全管理器已允許執(zhí)行退出操作。

  2. 所有不是守護線程的線程都已死亡,要么是從對 run 方法的調(diào)用返回,要么是拋出一個傳播到 run 方法之外的異常。

這些選項均不適用于您的情況,因此該線程仍然存在。這與垃圾收集無關(guān)。


查看完整回答
反對 回復(fù) 2023-06-08
?
慕村225694

TA貢獻1880條經(jīng)驗 獲得超4個贊

該行clazz = new JavaClass();只是將新對象分配給您的本地引用,并且不會破壞該引用所引用的先前創(chuàng)建的對象。此行不保證對象被垃圾收集。

此外,對象的垃圾回收不一定與線程的生命周期相關(guān)——您的線程可能會被中斷或完成其執(zhí)行,但對象仍可能存在于堆中并正在等待 GC。


查看完整回答
反對 回復(fù) 2023-06-08
  • 3 回答
  • 0 關(guān)注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號