V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Brentwans
V2EX  ›  问与答

Java 中是否成熟可用非可重入的 RWLock 的实现

  •  
  •   Brentwans · 2021-07-15 12:58:39 +08:00 · 357 次点击
    这是一个创建于 1031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本质上来说是需要一个互斥和共享的信号量,JUC 中貌似没有直接提供。
    我的使用场景:一块内存空间,存放在需要计算数据,有读取和编辑两个操作(类似 ByteBuffer 直接指向对应数据)。读取对象交给上层计算逻辑后,需要避免内存被编辑因此上读锁,但是这个锁不能由申请读写对象的线程释放,因为上层很难确保,计算的和申请的是同一个线程,因此重入锁或者 mutex 语义是无法满足的。

    简单来说就是:一个资源,只能一个更改,多个读取。但是不需要 mutex 语义中所有者的概念,也就是任何线程都可以释放锁。类似是 JUC 中读写锁中去掉线程拥有者。

    我的需求没有锁的拥有者是典型信号量的场景,因此目前我是通过信号量来完成的。但是处于安全考虑,我还是想直接使用成熟可靠的实现方案。有朋友有推荐的吗?
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2187 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:34 · PVG 08:34 · LAX 17:34 · JFK 20:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.