簡體   English   中英

Java:在構造函數中啟動一個新線程

[英]Java: starting a new thread in a constructor

為什么在Java中(或者就任何地方而言)在構造函數中開始一個新線程。 我收到了Netbeans的警告,但它沒有給我任何重構建議。 我正在編寫一個客戶端/服務器Swing應用程序,我正在啟動的線程是在服務器的JFrame構造函數中,以便持續監聽客戶端數據報。

為什么這不是好的做法,我應該如何避免呢?

從構造函數啟動一個線程允許啟動的線程在正確構造之前訪問正在構造的對象,從而使新線程可以使用一個未完全構造的對象。

您可以在構造函數中創建線程,並提供“啟動”方法以從外部啟動線程。

或者,您可以將構造函數和啟動方法設置為私有,並提供靜態工廠方法,該方法將創建對象,啟動線程並返回創建的對象。

請訪問此鏈接http://www.ibm.com/developerworks/java/library/j-jtp0618/index.html#code4

這與thissubclassing隱式引用有關。

使類最終,也可以是一個解決方案,因為沒有子類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM