在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运行。
答案 0 :(得分:6)
正如@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)