2016-11-09 13 views
0

私はいくつかのタスクを実行する実行可能クラスAを作成しました。これらのタスクを並行して実行できるように、ExecutorServiceを使用してこのクラスを送信しています。AsynFutureを呼び出すJavaのスレッド間でオブジェクトを共有する

実行可能クラスAは、AsyncFutureリクエスト(future.get()1)を送信する別のオブジェクトBを呼び出します。

RunnableクラスAのオブジェクトをExecutorServiceに送信しますが、クラスBのオブジェクトはBean(シングルトン)によって参照されています。これはスレッドの実行に問題を引き起こす可能性がありますか?

クラスAのオブジェクトのいくつかがスレッドによって実行されていないことに気づいています。

私はThreadLocalの使用について何かお読みになりましたが、ここに該当するかどうかはわかりません。

+0

通常、オブジェクトBシングルトンにBのメソッドが呼び出されたときに更新されるプロパティがない限り、シングルトンのメソッド呼び出しはスレッドセーフです。クラスBのコードを投稿できますか? – Zeus

+0

いくつかのコードを表示できますか? – pbajpai21

答えて

1

異なるオブジェクトからのシングルトンBeanを参照すると、別々のスレッドを経由してもボトルネックが発生します。私のために働いた唯一の解決策は、Aの初期化時にこのBeanをルックアップすることでした。

関連する問題