mysql中的 GET_LOCK() RELEASE_LOCK() 这种锁具体用途是什么?

baidu_32316735 2015-11-12 11:48:50
GET_LOCK(锁名,超时秒) 加锁,
RELEASE_LOCK(锁名) 解锁;
IS_FREE_LOCK(锁名) 检查锁是否可用
IS_USED_LOCK(锁名) 检查锁是否正在被使用,

手册上的上面4个函数,目测是线程锁;
请问具体用途是做什么用的,搞不明白;
难道就是测试锁名玩? 搞不清具体锁定了什么.
求讲解,谢谢';
...全文
497 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2015-11-13
  • 打赏
  • 举报
回复
另外,get_lock的第二个参数,应该是指申请锁的线程持有这个锁多久,比如10秒
LongRui888 2015-11-13
  • 打赏
  • 举报
回复
比如,先有一个sql申请了 xx锁。另一个线程也要申请xx锁,为了防止被锁住,先看看IS_USED_LOCK,是否有人正在用这个xx锁,如果有人用了xx锁,他就改个名字,比如申请yy锁,这样就不会冲突,也不会被锁住。
LongRui888 2015-11-13
  • 打赏
  • 举报
回复
既然mysql有这个东西,那肯定是又用的。 GET_LOCK(锁名,超时秒) 加锁:获取指定名称的锁,指定超时时间,比如一个sql语句获取了xx锁,然后你也要获取这个xx锁,就用这个。 RELEASE_LOCK(锁名) 解锁:获取了锁之后,用完了,就要释放,不然别的sql就执行不了。 IS_FREE_LOCK(锁名) 检查锁是否可用:测试这个锁是否其他线程已经在用了。 IS_USED_LOCK(锁名) 检查锁是否正在被使用, 所有这些都基于 锁名,大家都用同样的锁名,才有效,否则张三,李四,都不一样的锁名,那肯定就么有用了。

56,914

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧