3

現在、Apache HTTP クライアントを使用してマルチスレッド ソリューションを実行しています。現在、実行する httppost ごとに新しいスレッドを生成しています。これをより速く実行する方法はありますか? 返されたコンテンツに対して何もする必要はありません。リクエストを送信するだけで済みます。

私は主に、ステップ 2.9 でhttp://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e639で提供されたコードを使用しました。

4

2 に答える 2

5

これを長時間実行する必要があると仮定すると、スレッドを事前に作成しておくと実行時間を節約できるため、リクエストごとにスレッドを生成する必要はありません。パフォーマンスの向上はわずかですが、それでも何もないよりはましです。Javaエグゼキュータを見てください。

また、Apache HTTPクライアントの使用に関する限り、不要なオブジェクトを作成していないことを確認してください。たとえば、リクエストの送信先が(事前に)わかっている場合は、リクエストを送信する必要があるたびに接続を確立するのではなく、HTTP接続プールを保持することをお勧めします。

于 2012-12-06T09:28:54.457 に答える
1

非同期IO(NIO)を使用し、単一のスレッドで40の要求を実行することを検討します。そうすれば、40のスレッドを作成するオーバーヘッドがなくなります。

于 2012-12-06T09:30:55.910 に答える