6

偶然見つけてtime_nanosleep()疑問に思い始めました。いつこれを使いたいですか?

また、PHP のようなスクリプト言語で、このような短いタイムスパンで作業することは可能でしょうか?

4

1 に答える 1

5

いいえ、1 ナノ秒で作業することはできません。Linux でのコンテキスト スイッチのみが通常数百ナノ秒単位であり、Zend エンジンからのオーバーヘッドは含まれません。

PHP のソース コードを確認したところ、C の nanosleep 関数の単純なラッパーにすぎません。nanosleep の man ページには次のように書かれています。

nanosleep() は、少なくとも *req で指定された時間が経過するまで、呼び出しスレッドの実行を中断します。

...

sleep(3) および usleep(3) と比較して、nanosleep() には次の利点があります: スリープ間隔を指定するためのより高い解像度を提供します。

したがって、間隔をどれだけ小さく指定するかがすべてです。usleep はマイクロ秒 (数千ナノ秒) で指定されるため、非常に短いスリープ間隔には基本単位が大きすぎる場合があります。

于 2012-04-18T08:31:27.063 に答える