transient final ReentrantLock lock = new ReentrantLock();
.....................
.....................
private static final Unsafe unsafe = Unsafe.getUnsafe();
private static final long lockOffset;
static {
try {
lockOffset = unsafe.objectFieldOffset
(CopyOnWriteArrayList.class.getDeclaredField("lock"));
} catch (Exception ex) { throw new Error(ex); }
}
private void resetLock() {
unsafe.putObjectVolatile(this, lockOffset, new ReentrantLock());
}
[list]
[*] 在反序列化之后如何重设锁的呢?
[/list]
本文探讨了在反序列化之后如何正确地重置CopyOnWriteArrayList类的锁,提供了具体实现方法和代码示例。
378

被折叠的 条评论
为什么被折叠?



