Python 的 time.sleep 时间不准什么原因?

讨论 未结 9 46
lawsiki
lawsiki 会员 2022年4月18日 04:15 发表
<p>做了一个抢购脚本,大概逻辑就是获取开抢时间,然后判断当前时间差,超过 60 秒时每 30 秒检测一次,否则 0.5 秒检测一次,但是从打印日志上看,有时候理论休眠 0.5 秒的实际等了四五秒才执行,如果偏差一点我理解是没有获取到 CPU 时间片导致的,不过这偏差实在有点大,这是什么原因?</p> <p><img alt="WechatIMG26507.png" class="embedded_image" loading="lazy" referrerpolicy="no-referrer" rel="noreferrer" src="https://pic.dogimg.com/2022/04/18/625cca4b31544.png"></p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
9个回复
  • lxychn
    2022年4月18日 04:15
    这个偏差也太大了,什么版本的 python ,尝试升级一下。
    0 0
  • chenxytw
    2022年4月18日 04:15
    这种时间敏感使用场景不要使用 sleep ,和是不是小脚本倒没有关系.....
    0 0
  • akira
    2022年4月18日 04:46
    看实现原理。另外是不是你服务器 cpu 都爆了啊。。
    0 0
  • dangyuluo
    2022年4月18日 04:46
    感觉不应该啊。。scheduler 怎么会这么久才分配。
    0 0
  • fcfangcc
    2022年4月18日 09:44
    完整代码贴一下,感觉不应该
    0 0
  • guoqiao
    2022年4月18日 10:14
    有没有可能,你这里的 self.running 其实是一个 property, 而它比较耗时? 或者你的 logging 正在写一个文件,而那个文件已经超大. 建议贴一下完整代码.
    0 0
  • zhangjinghua
    2022年4月18日 10:48
    没有完整代码真不好确定,是不是访问互联网了啥啊,要不然把 sleep 单独弄一个线程出来
    0 0