Rumah > pembangunan bahagian belakang > C++ > Mengapa Panggilan Fungsi WinAPI Sleep() Kadang-kadang Melebihi Tempoh Yang Dijangkakan?

Mengapa Panggilan Fungsi WinAPI Sleep() Kadang-kadang Melebihi Tempoh Yang Dijangkakan?

Mary-Kate Olsen
Lepaskan: 2024-10-26 22:02:02
asal
480 orang telah melayarinya

Why Does WinAPI Sleep() Function Call Sometimes Exceed the Expected Duration?

Tempoh Tidak Dijangka untuk Panggilan Fungsi WinAPI Sleep()

Fungsi WinAPI Sleep() digunakan untuk menangguhkan pelaksanaan urutan untuk tempoh yang ditetapkan. Walau bagaimanapun, dalam kes tertentu, telah diperhatikan bahawa tempoh tidur melebihi nilai yang dimaksudkan.

Dalam Windows 7, memanggil Sleep(1) boleh mengakibatkan kelewatan lebih kurang 15ms dan bukannya 1ms yang dijangkakan. Ini telah disahkan dengan melaksanakan gelung 100 panggilan Tidur(1) dan memerhatikan jumlah masa tidur 1500ms.

Gelagat Yang Dijangka

Adalah penting untuk ambil perhatian bahawa lanjutan tempoh ini adalah tingkah laku biasa dalam sistem pengendalian Windows. Penjadual benang beroperasi mengikut kuanta masa, yang merupakan selang masa yang dipratentukan. Sebarang permintaan kelewatan bukan sifar diselaraskan kepada kuantum lengkap terdekat.

Oleh itu, tempoh tidur dinaikkan kepada kuantum masa terdekat, yang dalam kes ini ialah 15ms.

Pergantungan mengenai Faktor Luaran

Tempoh tempoh tidur juga boleh dipengaruhi oleh resolusi pemasa seluruh sistem. Secara lalai, Windows 7 menetapkan resolusi ini kepada 15.6ms. Walau bagaimanapun, atur cara atau konfigurasi sistem lain boleh mengubah suai tetapan ini, menghasilkan peleraian pemasa yang lebih rendah (cth., 1ms).

Dalam senario sedemikian, panggilan Tidur(1) mungkin mengalami tempoh tidur yang lebih pendek.

Atas ialah kandungan terperinci Mengapa Panggilan Fungsi WinAPI Sleep() Kadang-kadang Melebihi Tempoh Yang Dijangkakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan