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!