簡體   English   中英

threading.Timer時間精度

[英]threading.Timer time precision

Python的threading.Timer的時間准確度取決於什么?

它取決於使用的操作系統嗎?
它取決於使用的Python實現嗎?
它取決於間隔嗎?
如何進行基准測試?
那里有基准嗎?

在CPython中,threading.Timer准確性( 等待部分 )基於Condition.wait()調用。

Condition.wait()( 此處實現 )通過連續睡眠完成,延遲為min(delay * 2, remaining, .05) ,其中延遲最初設置為0.0005 # 500 us -> initial delay of 1 ms 根據這個實現(即OS獨立),我們可以說精確度至少是time.sleep准確性。

但是,time.sleep()的准確性是基於所使用的操作系統( 這里是實現:floatsleep() ),在Windows上,它使用帶有內部Windows計時器的WaitForSingleObject() ,在Linux上它使用select()方法。

至少,因為除睡眠延遲之外,OS的電荷可能干擾python過程的反應性,調度算法也可能對准確性產生影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM