2011-04-23 68 views
32

工作在我自己的分析器上,我想解釋我看到的。還有,它總是出現一些默認的線程,即使在最簡單的程序:默認線程,如DestroyJavaVM,參考處理程序,信號調度程序

  • DestroyJavaVM
  • 信號調度
  • 終結
  • 指向處理器

雖然他們的名字是相當自我記錄,我想獲得更多信息。看起來這些線程沒有記錄,有人知道挖掘這些信息的來源,甚至不知道這些線程是幹什麼的?

+1

可能重複[什麼是java信號調度程序線程?](http://stackoverflow.com/questions/235674/what-is-the-java -signal-dispatcher-thread)還有http://stackoverflow.com/questions/2239186/what-are-these-threads-which-are-spwaned-when-a-java-application-begins-its-execu – 2011-04-23 18:25:45

+1

現有JProfiler等分析器似乎涵蓋了幾乎所有可以想象的要求。我很好奇,現有的配置文件有什麼問題可以讓你開發自己的配置文件? – 2011-06-07 23:55:11

+3

@ Slava-Imeshev:不過,我同意你的看法,我調查了這個話題,在我的學士論文中寫下了它。 – 2011-06-08 16:38:03

回答

38
  1. DestroyJavaVM是一個在程序 退出時卸載Java VM的線程。大多數情況下,它應該等待,直到虛擬機啓動。
  2. Signal Dispatcher是一個處理操作系統發送給你的jvm的本地信號的線程。
  3. 終結器線程從終結隊列中拉出對象並調用它的終止方法。
  4. 引用處理程序是一個高優先級的線程,用於排隊處理掛起的References。它定義在java.lang.ref.References.java中