2011-08-23 14 views
6

シングルトンExecutorServiceと同じスレッドプールを使用するCompletionServiceの複数のインスタンスを使用することは安全ですか?シングルトンExecutorServiceを使用することは安全ですか

CompletionService<Object> collector = new ExecutorCompletionService<Object>(threadPool); 

したがって、上記のようなインスタンスを作成する複数のスレッド、「コレクタ」と1つのシングルトンthreadPoolが存在します。

+0

問題はありません。問題を引き起こす可能性のある特定の問題を念頭に置いていましたか? – toto2

+0

私のガット感はそこに何の問題もないと言います。しかし、私は見つけられなかったので、これを使用する前に確認したいと思っていました。 – ankitjaininfo

答えて

5

これで問題ありません。 ExecutorCompletionServiceの各インスタンスは、完了したタスクの独自のキューを保持し、基礎となるExecutorを使用して各タスクを処理します。

完了サービスの数が多く、スレッドプールに上限がありますが、結果の正確さには影響しない場合、タスクはお互いにパフォーマンスに影響を与える可能性があります。

関連する問題