相关疑难解决方法(0)

在Java中使用什么策略进行分层重入读/写锁定?

我正在寻找高效的系统,以便分层组织一系列读/写锁,以管理对分层组织资源的访问.如果一个子树被锁定以进行写入,那么在它被释放之前,不应该在整个子树中获得其他锁定; 类似地,子树中的写锁定应该防止在父节点中锁定.

以下是我正在考虑的想法:

  • 使用Apache Commons Transaction.不幸的是,该项目自2008年3月以来一直没有更新,并且已经非正式终止.一些API文档似乎表明即将推出的版本(1.3或2.0)将包含某种层次锁定,但源代码无处可寻,似乎我们无法再访问其SVN存储库.

  • 使用一系列ReentrantReadWriteLocks,我将按层次结构组织.我不是并发专家,我有点害怕自己这样做.初步想法似乎表明,即使在我尝试锁定一个子树之前,我必须在管理ReentrantReadWriteLocks本身的整个结构上使用外锁- 这样即使释放一个锁,我也必须使用外锁...

  • 使用来自java.util.concurrentjava.util.concurrent.atomic实现我的分层锁的类比我用一系列ReentrantReadWriteLocks 更有效.

我已经准备好走最后一条路,但我很惊讶没有找到任何可以更好地解决这个问题的现有图书馆.所以:

  • 我错过了一些明显的解决方案?
  • 或者这个问题特别难以妥善解决?

java locking hierarchical reentrancy readwritelock

7
推荐指数
1
解决办法
1522
查看次数

标签 统计

hierarchical ×1

java ×1

locking ×1

readwritelock ×1

reentrancy ×1