在 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)