Windows での Sleep() 関数の動作
Sleep() 関数を呼び出すと、通常、スレッドは指定された期間実行を一時停止します。ただし、場合によっては、スレッドが長時間スリープしているように見える場合があります。
Windows 7 などの Windows バージョンでは、Sleep() はタイム クォンタムで動作します。これは、ゼロ以外の遅延が最も近い量子に切り上げられることを意味し、その結果、スリープ期間がわずかに長くなる可能性があります。
この動作の一般的な症状は、Sleep(1) の呼び出しによって実際にエラーが発生する可能性があることです。約15ミリ秒のスリープ。これは、オペレーティング システムのスケジューラが通常 15.6 ミリ秒のクォンタムを使用するためです。
これを説明するために、次のコード スニペットが提供されています。
<code class="cpp">#include <iostream> #include <ctime> #include <windows.h> void test(void) { std::cout <p>このコードは Windows 7 で実行される可能性があります。スリープ期間は 1 ミリ秒ではなく約 15 ミリ秒と報告されます。</p> <p>したがって、Windows で採用されているタイム クォンタム システムにより、Sleep() が指定された遅延よりわずかに長い期間スリープするのが一般的な動作です。</p></windows.h></ctime></iostream></code>
以上がWindows で Sleep(1) が 15 ミリ秒スリープしているように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。