【发布时间】:2021-09-29 02:07:01
【问题描述】:
我想知道time.sleep(5) 和以下代码之间的区别是什么:
import time
start_time = time.time()
while True:
if time.time() - start_time > 5:
break
print("Five seconds passed")
另外,使用第一种还是第二种解决方案更好?
可能像我一样使用while 循环并不是一个好的解决方案。
感谢您的建议。
【问题讨论】:
-
当你真的想简单地停止一段预定的时间时,当你想考虑其他程序在同一 cpu 上运行时,
time.sleep()更好。您所拥有的是“忙等待”,这需要 CPU 时间和功率。 -
这是一个实现细节,但我相信,至少在 Linux 系统上,
sleep最终会调用select系统调用,其最终结果是基本上让当前线程屈服,所以另一个线程可以执行。相反,反复检查时间的循环将需要相当稳定的 CPU 使用率。
标签: python python-3.x time sleep