POSIXのselect()呼び出しでタイムアウト値が不安です。なぜ私は0(ファイル記述子をポーリングする)の値が必要なのか理解しています。他にどんな価値観があり、どのような目的に使用されていますか?なぜselect()コールにタイムアウトがありますか?一般的なシナリオでそれに対して妥当な値は何ですか?
答えて
(FD_SETSIZE
が最も高いファイル記述子の強い制限であるため)poll(2)は、多重化の目的でしばしばselect(2)よりも優れていることに注意してください。
実用的なタイムアウトは状況によって異なります。多くのGUI widget toolkitフレームワークでは、画面が50または60Hzでリフレッシュされることがわかっているので、おそらくタイムアウトをそれに応じて(たとえば、20ミリ秒に)設定します。または、マウスに少なくとも毎秒10回以上追跡する必要があることも知っています。実際には、これらのツールキットにもタイムアウトがあるため、event loopの各サイクルでpoll
またはselect
タイムアウトが動的に計算されます。 Webサーバーでは、タイムアウトは設定可能で、プログラムはそれに応じてpoll
タイムアウトを計算します。
実際には、poll(2)またはselect(2)は、しばしば1ミリ秒を超え、おそらく数十秒未満です。 YMMV。ところで、正確なタイムアウトはしばしばそれほど重要ではありません。
ウェブページAnswers section of Norvig's Teach Yourself Programming in Ten Yearsも参照してください(非常に興味深い)。
私は、あなたが選択しているファイル記述子の1つにマウスを動かすと予想されるため、タイムアウトのないselectを安全に使用できるという混乱があると思います。本当の疑問は、実際のプログラムデザインでは、コールセレクト以外のタイムアウト後に誰かがやり遂げることを期待しているかもしれないということです。 – Random832
しかし、それは状況とアプリケーションによって異なります。 –
- 1. ステートフルIComparer <T>の妥当なシナリオはありますか?
- 2. 一般的なシナリオとエンドユーザーレポートの設計は何ですか?
- 3. なぜその戻り値は未定義ですか?シナリオは何ですか?
- 4. なぜList.toArray()は一般的ではありませんか?
- 5. サーバがオンラインであるかどうかを確認するのに妥当なタイムアウトはありますか?
- 6. 特定のクラスに対する一般的な制約は、なぜですか?
- 7. WPFダイアログキャンセル - 一般的なシナリオ
- 8. Vimには一般的な `filetype = code`がありますか?
- 9. HasFlagには一般的な列挙型がありますか?
- 10. ブーストには一般的な「クリーンアップ」クラスがありますか?
- 11. C#4には一般的な属性がありますか?
- 12. Pythonには一般的なメソッドがありますか?
- 13. 参照型と値型であるTに対する一般的な制約はありますか?
- 14. モーダルビューを表示してイベントをバインドするベストプラクティスは何ですか?非常に一般的なシナリオで
- 15. 代入エラーの左オペランドとして必要なl-値ですが、なぜですか?一般的には
- 16. Vueに「まだ対話していない」と言う一般的な方法はありますか?
- 17. Catboost:l2_leaf_regの妥当な値は何ですか?
- 18. ユニットテスト(Android) - テストする一般的なシナリオ
- 19. 一時的なメモリ割り当てとは何ですか?
- 20. なぜ私はそんなに遅れがありますか?
- 21. 一般的なC#WeakEventリスナーが機能しないのはなぜですか?
- 22. ediFabric 6.7.7 - 一般的なEDIメッセージの妥当性確認
- 23. 一般的なCコンパイラでは、出力にソースファイル名が含まれているのはなぜですか?
- 24. なぜHaskellのタプルに「一般的な」アクセサ関数がないのですか?
- 25. なぜArray.newInstance(クラス<?>、int)は一般的ではありませんか?
- 26. 一般的なデータベースの一部のテーブルでプライマリキーが定義されていないのはなぜですか?
- 27. C++で書かれた一般的なオープンソースプロジェクトはありますか?
- 28. なぜ値がtypescriptに割り当てられていないのですか?
- 29. 一般的なクイックソートの何が問題になっていますか?
- 30. 一般的なPiecewiseのようなものがMathematicaにありますか?
非アクティブな接続/ファイル記述子を閉じたり、接続されたピアにキープアライブメッセージをスケジュールしたり、ログファイルにサマリー行を書き込んだり、プログラムファイルの状態を状態ファイルに保存したりするなどのハウスキーピングが必要な場合があります。 – joop