Fin*_*arr 9 java int concurrency atomic
这两个是等价的吗?换句话说,++和 - 运算符是原子的吗?
int i = 0;
return ++i;
AtomicInteger ai = new AtomicInteger(0);
return ai.incrementAndGet();
Run Code Online (Sandbox Code Playgroud)
++操作在java中不是原子操作,因为它由三个操作组成
所以最终可能发生一些不好的事情
在长的情况下,它甚至更棘手,因为即使读操作本身也不是原子的.
我发现了一篇很好的文章,讨论了内存模型
http://www.vogella.de/articles/JavaConcurrency/article.html#memorymodel_atomic