0
class A implements Callable{

 List result     // want to share this List amongst thread and their function call

 public Search  call() {

 List<Job>  Jobs = api. Jobs(a,b,c);  // Multiple threads 

    }
 }


class API{
         public void jobs(a,b,c){
              // want to access the  A.Result and populate the result
         }
}     

すべてのスレッド間で配列 List を共有するにはどうすればよいですか。 Static を使用したくありません。実行するたびに結果が蓄積され続けるためです。Thread Local はここで良い選択ですか?

余分なオブジェクトとそれぞれのゲッター/セッターを避けようとしていますか?

4

2 に答える 2

1

あなたが今持っているのはスレッド共有リストです。同期しない限り、このオブジェクトで動作するすべてのスレッド(このオブジェクトのインスタンスが1つだけ存在すると仮定)は同じリストを共有します。

于 2012-08-10T02:44:04.020 に答える
0

あなたが答えを持っていることは知っていますが、答えや質問を理解できなかったので、質問する必要があります. それで、あなたの問題はこのように見えますか?SINGLE リストでいくつかの作業を実行する一連の Callable があるため、このリストはスレッド間で共有されますか? 次に、この List Thread Safe を作成する必要があります。List of Objects を Thread Safe にすることは、Java によって既に提供されているものを使用しない限り、(自分で) それほど簡単ではありません。

于 2012-08-10T05:29:53.813 に答える