Java 有办法实现,变量级别这种细颗粒度的锁吗?有第三方库就更好了

查看 85|回复 5
作者:as9567585   
简单来说,就是根据不同的参数来锁
大概的意思,如下代码
写的有点问题, 两个地方 do something 做的逻辑是一样的,只是参数不一样

Java, 变量, 颗粒, 级别

as9567585
OP
  
写的有点问题, 两个地方 do something 做的逻辑是一样的,只是参数 arg 不一样
Akitora   
如果是想实现 lock by key 类似的功能,可以试试 redis 的 setNX ,或者用 String.intern()作为 synchronize 的对象
as9567585
OP
  
@Akitora 有直接在内存里实现的吗?有成熟的库就更好了 😁
Akitora   
@as9567585 https://stackoverflow.com/questions/5639870/simple-java-name-based-locks
as9567585
OP
  
看到一个这样的实现,https://blog.51cto.com/u_16213405/7704078
额,但是他没有在内存中移除锁,需要一个移除机制,最大存活时间什么的
但是,怕不好控制内存,这里的 arg 业务里是 userId ,理论上最多会创建 最大用户数量个 new Object()
有没有更好的实现呢?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部