通常、ある仕事をシミュレートするか、正確な時間間隔を待つ場合は、condition_variable::wait_for
を使用するか、最悪の場合はthread::this_thread::sleep_for
を使用します。しかし、condition_variable
documentationは、wait_for
またはwait_until
メソッドが要求された時間より長くブロックする可能性があると述べています。 は、スケジューリングまたはリソースの競合の遅れに起因するtimeout_durationより長くブロックすることがあり正確なスレッドスリープ間隔を保証するにはどうすればいいですか?
この機能。
正確な待機間隔はどのように保証できますか?
UPDATE
私はcondition_variable
ずに到達することはできますか?
標準C++には、このような機能はありません。そして、おそらくどちらもあなたのオペレーティングシステムはありません。 –
おそらく最も近いことは、大きなインクリメント0.1秒以上でスリープして正しい戻り時間を待つ独自の関数を作ることですが、かなり面倒で非効率なものになります。 –
@GradyPlayer:なぜですかあなたは任意の1秒を選んでいますか?より優先度の高いタスクを持つビジーなシステムでは、1000秒になることがあります。未使用のシステムでは、オーバーヘッドがゼロになる可能性があります。 – MSalters