2012-08-29 17 views
-2

我正在創建一個具有多線程類的應用程序來計算用戶指定的數字。我使它每次啓動類時都會將用戶指定的編號傳遞給構造函數。如何在程序本身中刪除一個變量

這意味着線程只能運行一次,因爲類的實例化基於用戶指定的編號。

我想知道是否有可能在完成計數後刪除類的實例,然後創建另一個具有相同名稱的實例。

+7

你能告訴我們你的代碼到目前爲止嗎? – Keppil

+0

你沒有說你爲什麼要刪除你的實例。你能解釋一下你的問題好一點嗎? – maksimov

+0

不顯示您的代碼或更多細節不是很清楚。如果類包含線程(即,是一個Runnable),則可以重新運行它(前提是它的編碼方式使得多個執行是獨立的,例如無狀態或可以重置爲初始狀態)。 如果您嘗試重新使用線程(Runnable)類而不必重新實例化線程,請查看線程池設施(http://docs.oracle.com/javase/tutorial/essential/concurrency/pools的.html)。 – zakmck

回答

1

一旦你完成,最後只需標記類reference as null。所以它會自動符合條件Garbage Collection

+1

您應該澄清,對特定實例的所有引用都需要標記爲空,以使其符合垃圾回收的條件。 – anio

0

您可以使用TimerService並使用新的用戶提供的號碼重新安排。也有ScheduledExecutorService也可以在計數器完成後調用Runnable,Callable, Thread

爲了更好地幫助請更新的問題:)

0

你不能真正刪除任何東西在Java中什麼時候你想,因爲它是垃圾收集工作,做到這一點。

相反,我建議在您的班級中添加重置方法,並在您準備重置計數時調用它。當然,您需要確保此方法已同步,或者要重置的數據是同步的。