现在有个简单的扣积分的场景,select 出来扣了之后判断积分大于 0,再 update 数据库。所以为了避免一些多线程的问题,想给每个用户 id 加锁执行。但是不知道最佳实践是什么。
我想到的几个方法
1. map 设置标志位,不知道有没有一致性问题
2. map 给每一个 id 配一个 object,用 synchronize 锁这个 object
3. string.intern,然后直接 sychronize string
4. 借助 redis 单线程特性做锁,比较麻烦
5.其他?。。
我想到的几个方法
1. map 设置标志位,不知道有没有一致性问题
2. map 给每一个 id 配一个 object,用 synchronize 锁这个 object
3. string.intern,然后直接 sychronize string
4. 借助 redis 单线程特性做锁,比较麻烦
5.其他?。。