在 python 中使用循环比睡眠命令等待更多 CPU 密集?
Is using a loop to wait more CPU-intensive in python than a sleep command?
On python 3 我需要停下来直到某个时间。而且我需要非常准确地知道我什么时候醒来。问题是在这个暂停期间我应该做一些计算,这将占用这段时间。所以我不能只 time.sleep()
通过它,否则我会开始得太晚。
所以我在考虑 运行宁这个代码:
import time
wakeuptime=time.time()+20 #start again exactly 20 seconds from now
UnpredictablySlowFunction()
while (time.time()<wakeuptime):
pass
我有点担心这种循环可能比正常的 time.sleep()
更无用 CPU 密集。特别是考虑到程序应该 运行 在后台 24/7。
正如评论中提到的@tobias_k,试试这个:
import time
wakeuptime=time.time()+20 #start again exactly 20 seconds from now
UnpredictablySlowFunction()
time_left = wakeuptime -time.time()
time.sleep(time_left)
On python 3 我需要停下来直到某个时间。而且我需要非常准确地知道我什么时候醒来。问题是在这个暂停期间我应该做一些计算,这将占用这段时间。所以我不能只 time.sleep()
通过它,否则我会开始得太晚。
所以我在考虑 运行宁这个代码:
import time
wakeuptime=time.time()+20 #start again exactly 20 seconds from now
UnpredictablySlowFunction()
while (time.time()<wakeuptime):
pass
我有点担心这种循环可能比正常的 time.sleep()
更无用 CPU 密集。特别是考虑到程序应该 运行 在后台 24/7。
正如评论中提到的@tobias_k,试试这个:
import time
wakeuptime=time.time()+20 #start again exactly 20 seconds from now
UnpredictablySlowFunction()
time_left = wakeuptime -time.time()
time.sleep(time_left)