• 締切済み

Sleep関数について

環境はWindowsを想定します。 Windows.hをインクルードすれば、Sleep(100);で処理を100ms停止することができますが、 Sleep関数はどのようにして100msを測定しているのでしょうか。 初歩的な質問かもしれませんが宜しくお願いします。

みんなの回答

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.2

Cから発行された時間待ち要求をOSがどのようにして実現しているかを知りたいのだと思いますが、Windowsパソコンにはタイマー回路やクロック回路が搭載されてますので、OSはそれを利用して時間を計測していると思います。 そのような回路に指定時間経過で割り込み信号を発生させてCPUに知らせるようにすることもできますが、WindowsのSleepではおそらく、OSが時間をカウントし、時間待ちを発行したCのアプリ(厳密にはスレッド)を休止→復帰させてるのだと思います。 以上、あくまで私の推測です。 Windowsに詳しい人が回答してくれるかもしれませんので、質問はオープンのままにされたほうがいいと思います。

すると、全ての回答が全文表示されます。
  • TT414
  • ベストアンサー率18% (72/384)
回答No.1

測定していません。 OSに対して時間待ちのAPIを発行するだけです。

すると、全ての回答が全文表示されます。