Fungsi time.sleep() Python ialah alat yang berguna untuk menjeda pelaksanaan program. Walau bagaimanapun, terdapat persoalan mengenai ketepatannya, terutamanya apabila menggunakan nombor titik terapung.
Ketepatan masa.sleep() bergantung pada sistem pengendalian asas (OS). OS bukan masa nyata, seperti Windows, mempunyai selang tidur minimum sekitar 10-13 milisaat.
Apakah maksud ini? Jika anda cuba tidur selama 50 milisaat (0.05 saat), time.sleep() hanya boleh dijeda selama kira-kira 50 milisaat daripada selang minimum (10-13 ms).
Untuk meningkatkan ketepatan, adalah disyorkan untuk melaksanakan gelung sekitar time.sleep(). Jika fungsi bangun sebelum masa yang ditetapkan, ia akan tidur semula untuk tempoh yang tinggal.
Jika anda memerlukan selang tidur yang lebih tepat, pertimbangkan untuk menggunakan pseudo real -inti masa, seperti kernel rt Ubuntu (set patch RT_PREEMPT). Ini boleh mengurangkan selang tidur minimum kepada sekitar 1 milisaat.
Inti Linux bukan masa nyata mempunyai selang tidur minimum lebih hampir kepada 1 milisaat, tetapi ia boleh berbeza dalam bukan -cara deterministik.
Berikut ialah contoh dengan gelung untuk memastikan ketepatan:
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)
Atas ialah kandungan terperinci Sejauh manakah Fungsi `time.sleep()` Python dan Bagaimana Saya Boleh Meningkatkan Ketepatannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!