2011-05-24 76 views
4

我已經實現了一個多線程程序,它涉及爲每個用戶產生一個線程,並執行一些次要的活動(沒有包括數據庫連接在內的窮舉過程)。主線程無限運行,並通過監視文件創建活動來處理其終止。 我的問題是,是否可以直接終止主線程,而無需等待線程完成? (假設線程將自己完成(!),可能是一個錯誤的假設)。終止主線程,但不確保終止它產生的線程

回答

3

當然。

主線程只是其中一個線程,其終止不會影響其他線程(除非您不使用System.exit()來停止線程...)。

主線程只是第一線*)已啓動但它已經沒有多餘的或隱藏的特徵或功能。


*),以保持它的簡單 - 在JVM可能在之前主開始有些內部線程 - 但應用程序有那些線程

3

是無碼,線程的一點是,他們獨立運行。

只有當客戶端線程作爲守護程序線程啓動並且main是唯一的非守護線程時,它纔會起作用。 (在這種情況下,應用程序在停止時會關閉)

1

是的,通常在大多數應用程序中就是這種情況。主線程通常對於啓動系統是非常有效的,並且之後它可以和平地死亡。

請注意,您並不真正「終止」主線程,而是讓它完成其運行方法。那就好。