說我有類爪哇多線程:從多個線程改變可變
public class OuterClass
{
public static WorkerClass worker;
}
在線程1
當執行doLongRunningOperation
下面的命令被執行
Outerclass.worker.doLongRunningOperation();
,在線程2
Outerclass.worker = new WokerClass();
線程1中的doLongRunningOperation
會發生什麼情況?
worker
worker
線程1引用的對象是垃圾回收,只有在doLongRunningOperation
完成後才能被垃圾收集worker
對象。
編輯:
我認爲它應該是GC'ed,因爲它不再引用。但doLongRunningOperation
會發生什麼?它會突然終止嗎?
你能澄清你認爲會發生什麼,爲什麼?有什麼理由爲什麼它應該被GC'ed,什麼原因它不應該? –
@SotiriosDelimanolis我已在編輯中澄清它。 – q126y
你提到_ doLongRunningOperation完成後_所以我對你的新問題感到困惑_它將被突然終止__查看GC根的概念。 –