gccを使用しているLinuxでは、いくつかの従来のC++コードをC++ 11にアップグレードする段階にあります。優先度を設定しようとするとき、私は次の質問を思いつきました。 std::this_thread::sleep_for
に電話してusleep
に電話をかけても何か利点がありますか?コードでは、実行中のスレッドが非常に短い期間待つことになっていると話しています。したがって、私は睡眠を中断するなどの高度な機能は必要ありません。私はsleepleでusleepを交換する必要があります
答えて
はい。 std::this_thread::sleep_for
はC++ 11標準で指定されているため、C++ 11コンパイラおよび標準ライブラリを持つ任意のシステム上の移植可能なソリューションです。
usleep
は、POSIX.1-2001で指定されており、廃止されました。これはPOSIX準拠のシステムでのみ(信頼性高く)使用できることを意味します。
POSIX.1-2008はusleep
の指定を削除し、nanosleep
を優先します。この理由だけでも、std::this_thread::sleep_for
がはるかに良い選択です。
(詳細はhttp://linux.die.net/man/3/usleepを参照)。
私はPOSIX関数よりもstd準拠の関数を好むべきだと私は理解しています。しかし、私は副作用を期待する必要がありますか? sleep_forは休憩とは異なる動作をしますか?パフォーマンス上の利点やペナルティはありますか? –
私が見る限りではありません。両方とも指定された期間以上スリープするように指定されています(スケジューリングなどによっては長くなる場合もあります)。 – Andrew
パフォーマンスに関する懸念事項は、2つの解決策を_profile_することです。私は両者の間に大きな違いがあるとは想像もできません。とにかく待っている時間と比較していない。 – Andrew
- 1. と交換する必要があります'
- 2. は、私はこのパスを交換する必要があり、スラッシュ(/)
- 3. Eregiは交換が必要ですか?
- 4. 私はオブジェクトツリー内からオブジェクトを交換する必要があるオブジェクトツリー
- 5. フォームのフィールドの可視性を交換する必要があります
- 6. は私がfile_get_content(私は敏感な情報を削除した)とカール交換する必要がありfile_get_content
- 7. OpenID属性交換 - 使用する必要がありますか?
- 8. 必要性の交換が
- 9. "Designation:"という単語で始まり、最後まで交換する必要があります
- 10. HTTP同期要求で自己生成トランザクションIDを交換する必要があります
- 11. 私のIBackingStoreはスレッドセーフである必要がありますか?
- 12. nodejsの交換でパッケージが必要
- 13. 私はvb.netで値を丸める必要があります
- 14. 私はセレンwebdriverを+ pythonで次のURLの一部を交換する必要があるのpython
- 15. JavaScriptで置換する必要があります。
- 16. fivestar ratingをランク付けで10ポイントに交換する必要がありますか?
- 17. AS3は私がremoveEventListenerする必要があります
- 18. 私はJavaをテストする必要があります
- 19. 私はカラーテキストを出力する必要があります
- 20. 私はsingletableviewを使用する必要がありますか?
- 21. 私はphp5-mysqlをインストールする必要があります
- 22. 私はdjango reset_queries()を使用する必要があります
- 23. 私はUITouchオブジェクトをリリースする必要がありますか?
- 24. 私はこれを同期する必要があります
- 25. 私はRedisLocks(ServiceStack.Redis)を使用する必要があります
- 26. 私はフォームタグを使用する必要がありますか?
- 27. 変換マウスは、私が球を持っていると私は、マウスを変換する必要があり
- 28. サムネイル画像はクリック時に現在の画像と交換する必要があります
- 29. jQueryのワイルドカードは、私はこのURL</p> <p>HTTPを交換する必要があるURL
- 30. データモデリング:常に交差テーブルを使用する必要がありますか?
はい、コードの移植性が向上します。 –
コードを変更するたびにバグが導入される危険性があります。しかし、もしあなたが関数を修正しているのであれば、移植性の高い標準コードに移動しないのはなぜですか? – Galik