代碼中不包含創建線程操作,在運行main時,
JVM也會自動地啓動其他的線程,這些線程都有特定的功能
Attach Listener :該線程是負責接收到外部的命令,執行該命令,並且把結果返回給發送者。通常我們會用一些命令去要求jvm給我們一些反饋信息,如:java -version、jmap、 jstack等等。如果該線程在jvm啓動的時候沒有初始化,那麼,則會在用戶第一次執行jvm命令時,得到啓動。
Signal Dispatcher:把操作系統發來的信號分發給適當的應用程序,用於連接操作系統和應用程序
Finalizer:在每個對象結束的時候,可能會實現finalize()方法,該線程主要是爲了處理該方法。
(隨着java語言的發展,finalize()不推薦使用)
Reference Handler:和GC、引用相關的線程。和垃圾回收相關,將每一個對象的引用記錄在案,配合GC進行垃圾回收。