【发布时间】:2014-01-24 17:59:49
【问题描述】:
我正在尝试并行化一些使用“常量”类中的静态字段的代码。目前的代码基本上是这样的
public class myClass{
public class Constants{
public static int constant;
}
public static void main(String[] args){
for(int i = 0 ; i<10 ; i++){
Constants.constant = i;
System.out.println(Constants.constant/2);
}
}
}
显然,循环中的代码更依赖于 Constant 类,而后者本身要复杂得多。我想做的是为循环的每次迭代创建一个线程并分别进行上述计算,同时控制线程的数量(现在我使用的是一个简单的信号量)。 现在很明显,在上面的代码中,Constants 类在线程之间共享,因此每个线程都不能在不更新所有线程的情况下对其进行更新。
所以我的问题是:无论如何让我的常量类能够为每个线程拥有一个实例,同时能够以静态方式访问其字段?
【问题讨论】:
标签: java multithreading concurrency static