Python 的 time.sleep() 函數是暫停程式執行的有用工具。但是,其準確性存在問題,尤其是在使用浮點數時。
time.sleep() 的精確度取決於底層作業系統(作業系統)。非即時作業系統,例如 Windows,最小睡眠間隔約為 10-13 毫秒。
這是什麼意思?如果您嘗試睡眠 50 毫秒(0.05 秒),time.sleep() 可能只會從最小間隔(10-13 毫秒)暫停約 50 毫秒。
為了提高準確性,建議圍繞 time.sleep() 實現循環。如果函數在預定時間之前喚醒,它將在剩餘的時間內返回睡眠狀態。
如果您需要更精確的睡眠間隔,請考慮使用偽實數-time 內核,例如 Ubuntu 的 rt 內核(RT_PREEMPT 修補程式集)。這可以將最小睡眠間隔減少到 1 毫秒左右。
非即時 Linux 核心的最小睡眠間隔接近 1 毫秒,但它可以在非即時情況下變化。 -確定性方式。
這是一個使用循環來確保準確性的範例:
import time target_sleep_time = 0.05 # 50 milliseconds start_time = time.time() while True: elapsed_time = time.time() - start_time if elapsed_time >= target_sleep_time: break time.sleep(target_sleep_time - elapsed_time)
以上是Python 的 time.sleep() 函數有多準確,如何提高其精確度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!