私は、すべての呼び出しでsize
ofとその前のを合計する必要があるプロジェクトに取り組み始めました。beAttributes
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 ループで、メソッドの最初の呼び出しで、asgetBEAttributes
を取得したとします。次に、それを静的整数に格納する必要があります。そして今、メソッドへの他の呼び出しで、私はasを得たので、これを前のに追加する必要があります。これで、その静的整数は 60 になります。そして、プログラムが終了するまでこのプロセスを続けます。メインスレッドから同じ静的整数を出力します。beAttributes.size
20
20 number
getBEAttributes
beAttributes.size
40
40
20
私が現在行っている方法は、スレッドセーフかどうか? インクリメントのやり方に問題があると思います。はいの場合、誰かが正しいアプローチで私を助けることができますか?