使用time.sleep()指定线程休眠的时间是否有上限?我一直遇到长时间睡眠(即超过1k秒)的问题.这个问题出现在Windows和Unix平台上.
其他人已经解释了为什么你可能睡得比你要求的少,但没有告诉你如何处理这个问题.如果你需要确保你至少睡了n秒钟,你可以使用如下代码:
from time import time, sleep def trusty_sleep(n): start = time() while (time() - start < n): sleep(n - (time() - start))
这可能比n睡得多,但在睡眠至少n秒之前它永远不会恢复.
我想文档中描述的可能情况越多,时间越长:
实际的暂停时间可能小于请求的时间,因为任何捕获的信号都将终止该
sleep()
信号捕获程序的后续执行.此外,由于系统中其他活动的安排,暂停时间可能比任意量请求的时间长.