Java中java.util.concurrent.atomic包中的类的确切用法是什么?

Hos*_*ein 9 java concurrency atomic java.util.concurrent

我是比较新的java.我正在尝试了解包中类的用法:

java.util.concurrent.atomic中

我试图理解这个包的javaDoc来掌握它.但是当我应该使用这些类时,它真的没有任何意义.有人可以用简单的词语举例和更多描述吗?谢谢

SiN*_*SiN 13

考虑10个线程正在递增int i(初始化为0)并输出控制台的值.你可以得到这样的东西:

1
2
2
3
3
5
6
6
8
10
Run Code Online (Sandbox Code Playgroud)

例如,AtomicInteger确保每个线程可以原子地递增或递减值,确保写操作以同步方式发生,对于10个线程,输出始终为:

1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)

  • 为什么在第一个示例中从 3 跳到 5,从 6 跳到 8?两个线程不应该同时读取一个值并写入相同的值吗? (2认同)