V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Brentwans
V2EX  ›  问与答

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

  •  
  •   Brentwans · Jul 15, 2021 · 622 views
    This topic created in 1751 days ago, the information mentioned may be changed or developed.
    本质上来说是需要一个互斥和共享的信号量,JUC 中貌似没有直接提供。
    我的使用场景:一块内存空间,存放在需要计算数据,有读取和编辑两个操作(类似 ByteBuffer 直接指向对应数据)。读取对象交给上层计算逻辑后,需要避免内存被编辑因此上读锁,但是这个锁不能由申请读写对象的线程释放,因为上层很难确保,计算的和申请的是同一个线程,因此重入锁或者 mutex 语义是无法满足的。

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

    我的需求没有锁的拥有者是典型信号量的场景,因此目前我是通过信号量来完成的。但是处于安全考虑,我还是想直接使用成熟可靠的实现方案。有朋友有推荐的吗?
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2392 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:54 · PVG 09:54 · LAX 18:54 · JFK 21:54
    ♥ Do have faith in what you're doing.