1
私はいくつかのlibをlibevとして読みましたが、それらのすべてはネットワーク通信を処理するために非ブロックioを使用しています。しかし、この場合、ブロックioはネットワーキングで使用されますか?ブロッキングネットワークI/Oがどのような条件で使用されていますか?
私はいくつかのlibをlibevとして読みましたが、それらのすべてはネットワーク通信を処理するために非ブロックioを使用しています。しかし、この場合、ブロックioはネットワーキングで使用されますか?ブロッキングネットワークI/Oがどのような条件で使用されていますか?
単純なプログラム(テストユーティリティや専用クライアントなど)や専用スレッドの使用の場合。
最初のケースでは、ノンブロッキングI/Oに関連する余分なロジックには何の意味もありませんが、2番目のケースでは、ロジックは、ブロックI/Oを使用しているスレッドが本質的にシミュレートされた専用のクライアント(またはサーバー)では、これはスレッドと同期のための追加リソースを犠牲にして行われますが、とにかく複数のスレッドが必要な場合やスレッドのリソースが安い場合には、
ノンブロッキングI/Oは、リソースやテスト容易性、移植性の問題などで、専用スレッドを使用できないライブラリやその他のケースでよく使用されます。それはしばしば個々の味にまでこだわります。違いはしばしばスタイルの問題です。