我已经开始研究一个项目,在这个项目中,我需要将每次调用中的size
ofbeAttributes
与之前的size
.
下面是我的代码-
public static void main(String[] args) {
final int noOfThreads = 2;
//create thread pool with given size
ExecutorService service = Executors.newFixedThreadPool(noOfThreads);
for (int i = 0, i< noOfThreads; i++) {
service.submit(new ThreadTask());
}
// wait for termination
service.shutdown();
service.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
System.out.println(ThreadTask.count_size);
}
class ThreadTask implements Runnable {
public static int count_size = 0;
@Override
public void run() {
while(time < 10 minutes) {
try {
...
List<BEAttribute<?>> beAttributes = beClient.getBEAttributes(columnsList);
// Now I need to sum the beAttributes.size in every call
final int size = beAttributes.size;
count_size = count_size + size;
...
} catch (InterruptedException e) {
}
}
}
问题陈述:-
假设在 while 循环中,对于第一次调用getBEAttributes
方法,我得到beAttributes.size
了20
. 然后我应该将它存储20 number
在一些静态整数中。现在在对方法的其他调用中getBEAttributes
,我得到了beAttributes.size
as 40
,那么我应该将它添加40
到 previous 20
。所以现在静态整数将变为 60。并继续执行此过程,直到程序完成。并从主线程打印相同的静态整数。
我目前正在做的方式是线程安全的吗?我想我做增量的方式有问题。如果是的话,有人可以帮助我正确的方法吗?