java如何使用ReadWriteLock
我有一个缓冲池,可以存储很多对象。为了防止不同线程以相同的速度写入同一对象,为了提高效率,我使用ReadWriteLock
。但我不太确定它是如何工作的。在我找到想要访问的对象后
if(perm.equals(Permissions.READ_ONLY)) {
readLock.lock();
} else if(Permissions.READ_WRITE) {
writeLock.lock();
}
return the object I want to access
系统如何知道程序试图访问并锁定哪个对象? 还是我的语法错了?帮助谢谢
# 1 楼答案
系统不知道你想锁定什么。如果要对一系列项使用锁对象,则必须对每个项使用锁,或者对整个对象集使用一个锁(这可能是一个很大的瓶颈)。这是一个使用单个锁同步访问的示例