亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

jvm啟動時有幾個線程?

jvm啟動時有幾個線程?

JVM
慕田峪7331174 2018-11-13 18:14:35
jvm啟動時有幾個線程
查看完整描述

1 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

在寫Java程序時,通常我們管只有一個main函數而沒有別的Thread或Runnable的程序叫單線程程序。但是我們寫的這個所謂的單線程程序只是JVM這個程序中的一個線程,JVM本身是一個多線程的程序,至少得有一個垃圾收集器線程吧。
剛裝了一個NetBeans6.0,里面帶了一個分析器包,于是寫了一個HelloWorld程序,檢驗了一下JVM一啟動,里面會有幾個線程:
結果是:除了我的main線程以外,還有四個線程:
Finalizer 線程:在垃圾回收之前執行“對象完成”的Java系統線程
Signal Dispatcher 線程:為JVM處理本地操作系統信號的Java系統線程
Reference Handler 線程:將掛起的對象放到隊列中的高優先級Java系統線程。
Attach Listener 線程:用戶線程
我個人的猜測是:
Finalizer 線程的任務就是調用finalize()方法來進行垃圾回收。
Signal Dispatcher 線程的任務就是處理操作系統方面的東西,屏蔽操作系統,使Java達到跨平臺的事兒應該是它干的。
Reference Handler線程的任務就是將一個不用的對象打上標記,放到回收對象的隊列中,以便于Finalizer線程來進行釋放內存操作。
最后一個 Attach Listener 線程:這個應該是我的Java Profile線程了。跟JVM沒有關系。
所以,當一個最簡單的Java程序啟動時,JVM除了我們的main線程外,還會啟動3個線程。

查看完整回答
反對 回復 2018-12-12
  • 1 回答
  • 0 關注
  • 852 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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