2017-11-25 9 views
-3

非ブロックhttpクライアントと分離されたスレッドプールで実行されるブロッキングhttpクライアントの使用の違いはパフォーマンス、リソースなどです。後者の場合、スレッドはブロックされますが、分離されたスレッドプールを使用すると、残りのアプリケーションへの影響が減少します。実際の違いはありますか?誰かがこれをクリアできるなら、本当に役に立ちます。非ブロックhttpクライアントと分離されたスレッドプールを使用するhttpクライアントのブロック

+0

一般に、セレクタを使用して設計されたアプリケーションの方がパフォーマンスは高くなりますが、「うまく設計されている」ということは、提供していない詳細の多くに依存します。 – markspace

+1

これは、stackoverflowにはあまりにも広い質問です。おそらくこれは役立ちます:https://softwareengineering.stackexchange.com/questions/321529/what-are-the-benefits-of-asynchronous-http – pedrorijo91

答えて

0

ブロッキングクライアントは多くのリソースを使用します(主に追加のスレッドがあるため、追加のスタックのためにコンテキストスイッチが増え、メモリ使用量が増えます)。つまり、スレッドプール内のスレッドの数が限られているため、負の影響が最も大きくなる可能性があります。すべてのスレッドが長時間実行されているリクエストでブロックされている場合、「高速」リクエストは(完了していても)待機する必要があります。

関連する問題