Posix(Linux)環境で長時間実行されるサーバープログラム(Cで構築)の場合:将来の特定の時間に関数を実行するための最良のアプローチは何ですか?特定のスレッドで実行する必要はありませんが、実行時間の精度は数ミリ秒である必要があります。一般的なアプローチまたは特定のコードを歓迎します。
質問する
214 次
2 に答える
1
GNU C ライブラリ ( ) にはいくつかの高精度クロック関数があるsys/timex.h
ため、それらは POSIX ではありませんが、移植可能な Linux に適しています。
これらの機能には接頭辞「ntp」が付いていますが、ntp サービスを必要とせず、利用することもないため、この関係は純粋に表面的なものです。
粒度はマイクロ秒単位ですが、Linux カーネルのユーザー空間のレイテンシは 10 ミリ秒なので、気にしたり、それ以上の正確さを期待したりしないでください。
現在の高解像度の時間を取得したら、持続時間を計算し、(posix) nanosleep (ただし、ここでも 10ms に丸めます) を使用して遅延を設定できます。興味深いかもしれないclock_nanosleepもあります。
于 2013-03-11T15:49:05.250 に答える