发布于 1970-01-01 08:00
  • 2 个回答
    • 我的理解是尝试300次获取锁,如果失败了,就告诉用户失败。
      成功获取锁的话,有6秒的独占时间。这个时间用来给程序处理后续的业务逻辑,比如生成订单。6秒过后,下一个用户进来,继续获取锁。

      lock ->do sth. ->release
      lock ->do sth. ->release
      lock ->do sth. ->release
      lock ->do sth. ->release

      2022-12-01 18:39 回答
    • $lock_num跟锁没有关系,$lock_num只是用来记录重试的次数,比如当前同时有1000个用户在抢这个锁,而你如果重试了300次(30秒)还没有抢到锁就待会再来吧。
      循环会每隔0.1秒重试一次,但是因为一个锁会占用6秒的时间,所以实际上在300次循环中(30秒)其实只有5次竞争锁的机会。

      2022-12-01 18:39 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有