说我有类爪哇多线程:从多个线程改变可变
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根的概念。 –