2013-03-09 15 views
0

這個問題可能是一個非常新手的問題,但這對我來說很困惑。我正在研究Java網絡,我很好奇main方法的後端。Java主要方法是否啓動無限while循環?

public static void main(String[] args) throws IOException 

我知道main啓動一個線程嗎?所以,即使我有一個簡單的「Helloworld」程序,一個線程仍然活着直到關閉整個IDE或系統?

這是否意味着我可以在主方法中包含任何代碼,我也想永遠運行它(例如,心跳傳感器檢查或其他檢查)。

感謝

+3

JVM不會保持活動狀態,除非非守護線程繼續運行,除非編碼人員明確或隱含地(例如運行Swing GUI)創建一個或以某種方式保持主要的非線程守護進程線程活着(如使用while循環)。 – 2013-03-09 21:03:05

+0

@HovercraftFullOfEels - 我明白了,理解。非常感謝! – Coffee 2013-03-09 21:05:13

+1

但請記住,如果啓動了一些庫,可以創建並運行非守護線程,例如上面提到的Swing庫。我相信還有其他的例子。 – 2013-03-09 21:06:30

回答

9

號的JVM啓動一個線程(主線程),並執行該線程內的主要方法。只要主方法返回,如果沒有其他非守護線程正在運行,JVM就會退出。

你可以在main方法中運行一個無限循環,並且JVM永遠不會退出(除非它從外部被終止)。

+1

理解 - 如果沒有非守護線程存在,JVM將自動退出。謝謝! – Coffee 2013-03-09 21:06:31