3
我有一個Java類,它需要一個在實例化時並行運行的監視器。我想繼續運行此監視器,直到實例不再運行或未引用它。 通常情況下,我傾向於使用活動標誌作爲變量,該類在關閉/關閉時關閉,但必須仔細管理並在關閉時調用它。 我也知道Object的finalize成員,但是我記得使用它或者它是爲了這個目的不安全嗎? 另外一個監視器當然可能有被監視對象的循環引用,但這可能是另一個問題。運行線程直到對象/父對象被取消
我有一個Java類,它需要一個在實例化時並行運行的監視器。我想繼續運行此監視器,直到實例不再運行或未引用它。 通常情況下,我傾向於使用活動標誌作爲變量,該類在關閉/關閉時關閉,但必須仔細管理並在關閉時調用它。 我也知道Object的finalize成員,但是我記得使用它或者它是爲了這個目的不安全嗎? 另外一個監視器當然可能有被監視對象的循環引用,但這可能是另一個問題。運行線程直到對象/父對象被取消
您可能喜歡使用WeakReference在線程中監視對象。這允許垃圾收集器收集並銷燬該對象。 在線程中,每次執行檢查時都必須檢查引用的對象是否仍然存在。如果它不再存在,則可以安全地退出該線程。
由於垃圾收集器不會立即銷燬對象,因此可能存在未知的時間跨度,其中踏面仍處於活動狀態,但監視的對象不再使用。
未知的時間跨度可以是「從不」。 – Voo
在此背景下,「永不」又名「直到垃圾收集」在我看來是可以接受的/罰款。感謝你及時的答覆。 – Thomas