如何在Java中的所有线程中维护List的单个副本

时间:2012-08-10 02:40:39

标签: java multithreading

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
         }
}     

我如何共享数组列表amogst all threds,我不想使用Static, 因为它会在每次运行时不断累积结果, Thread Local是一个很好的选择吗?

试图避免额外的对象及其各自的getter / setter?

2 个答案:

答案 0 :(得分:1)

你现在拥有的是线程共享列表。所有线程都在此对象上运行 (假设只存在此对象的一个​​实例)除非您同步,否则共享相同的列表。

答案 1 :(得分:0)

我知道你有答案,但我不明白答案或问题,因此需要问。那么,你的问题看起来像这样吗?你有一堆可以在SINGLE列表上执行某些工作的Callables,因此这个列表在Threads之间共享?然后你需要使这个列表线程安全,并创建一个对象列表线程安全不是那么简单(你自己),除非你使用已经由Java提供的东西