使用forjointask,AtomiceInteger没有像预期的那样增加

时间:2017-02-19 02:41:15

标签: java multithreading atomic

我使用AtmoicInteger一个forkjointask里面已经算很多时候它到达起始condition.But中的AtomicInteger从来没有对incrementAndGet更新()。详细代码如下,任何事情我做错了?

Figure

1 个答案:

答案 0 :(得分:0)

每次递归

invokeAll( new PrcForkJoinTask(start,middle),new PrcForkJoinTask(middle,end));

它将使用新的AtomicInteger count = 0创建新对象,然后它将在行处增加1

 System.out.println("calculated times"  +  count.getAndIncrement());

因此将创建多个新对象PrcForkJoinTask,并且每个对象都将具有count = 1

如果要计算摘要,则需要在新的PrcForkJoinTask对象中传递计数。