开发者社区 问答 正文

锁释放的注意点是什么?

锁释放的注意点是什么?

展开
收起
岩茶芋泥 2022-04-19 10:57:11 597 分享
分享
版权
来自: 阿里技术 举报
1 条回答
写回答
取消 提交回答
  • 1、锁一定需明确释放,try/finally 结构加锁解锁,finally内释放锁; 2、锁只能被加锁的对象释放,此处是经常出问题的点,如下图所示,A加锁被B释放锁,导致锁失效,锁被C抢占到; image.png

    针对上述问题,释放锁时需要先读取当前key的value,再和传入的value进行比较;上述是两个步骤一定要保证原子性,如果原生Redis可采用lua脚本保证原子性;如果tair,可采取TairString的cad方法;value必须是一个唯一值,唯一标记是当前对象加的锁。

    2022-04-19 16:51:23 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址: