Java:ReadWriteLock和ReentrantReadWriteLock之间的区别

4

我有一些数据结构,我想要在写入时独占地锁定访问权限,但在读取时允许并行访问。

我做了一些搜索,发现了类ReadWriteLockReentrantReadWriteLock - 它们都提供了读取锁和写入锁。

我不明白它们之间的区别。请问有人能解释一下吗?


5
首先,一个是接口,另一个是具体类... - assylias
https://en.wikipedia.org/wiki/Reentrant_mutex - D Levant
@assylias,谢谢。我简要查看了Javadoc的头部并错过了顶部写着的“Interface”关键字。为这个问题感到愚蠢...无论如何,我希望这个线程能够为未来的一些人节省一些时间。 - SomethingSomething
1个回答

5

我对我的问题感到很蠢 - 答案非常简单...但我希望能为其他人节省时间...

ReadWriteLock只是一个接口,而ReentrantReadWriteLock则是其实现。

因此,你实际上不能使用“ReadWriteLock的实例”...

这就是整个答案了...


好的,你仍然应该了解“可重入”是什么意思。 - D Levant
我猜这意味着如果是读取操作,多个线程可以访问;而如果是修改操作,只有修改线程可以访问对吧?这就是关于共享锁和排他锁的概念。 - SomethingSomething
1
不,那是ReadWrite部分。例如,内置的Java锁(synchronized关键字)是可重入的,而不是读写锁。请查看我在另一个评论中提供的链接https://en.wikipedia.org/wiki/Reentrant_mutex - D Levant
@Holger,你应该知道,在接受自己的答案之前,我们需要等待2天。 - Nicolas Filotto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接