当线程持有其监视器时,是否可以保证对象不会被垃圾收集?
例如
class x {
private WeakReference<Object> r;
Object getMonitorObject() {
Object o = new Object();
r = new WeakReference<>(o);
return o;
}
void thread1() throws Exception {
synchronized (getMonitorObject()) {
Thread.sleep(3000);
}
}
void thread2() {
Object b = r.get();
}
}
具体来说,在这种情况下,是否有任何保证在另一个线程正在休眠时b将被调用非nullif ?我们假设整个过程是在另一个线程休眠时执行的。thread2()thread1()thread2()thread1()
红颜莎娜
12345678_0001
慕森卡
一只名叫tom的猫
RISEBY
相关分类