开发者社区> 问答> 正文

锁释放的注意点是什么?

锁释放的注意点是什么?

展开
收起
岩茶芋泥 2022-04-19 10:57:11 572 0
来自:阿里技术
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
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载