2011-01-22 27 views
3

Webサービス環境では、アプリケーションが受け取る要求ごとに、いくつかの独立したhttp呼び出しを行いたいと思います。これらの呼び出しは独立しているため、シリアルにするのは意味がありませんので、一種の並行処理が必要です。WebサービスのJava/Scalaマルチスレッドの問題

私の理解では、httpコールごとに新しいスレッドを不注意に作成するのは意味がありません。また、これらのスレッドをすべて再作成すると、オーバーヘッドが大きくなります。

私は最良の選択肢は、すべてのhttp呼び出しのためのSingletonでFixedThreadPoolを作成し、それをアプリケーション全体で使用することだと思います。

これが最適ですか?

+0

特定のWebサーバーを使用していますか?ほとんどのWebサーバーがこれを行います。たとえば、Tomcatには既に固定スレッドプールがあり、要求ごとにそのプールからスレッドを割り当てます。 – rodion

+0

Httpサービスコールを作成するためのFixedThreadPool(または任意の並行処理ユーティリティ)を持つことは、巨大な過度の攻撃です。このような操作のためにスレッドを実行したいのはなぜですか? –

+0

@ doc_180:私は並行性が新ですので、あなたの選択肢を撃ってください。 – parsa

答えて

3

AsyncHttpClient AsyncHttpClientライブラリを使用して、非常に簡単な非同期httpコールを行うことを検討してください。このライブラリの使い方を説明した一連のブログ記事があります。Going Asynchronous using AsyncHttpClient

関連する問題