Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中java.util.concurrent.atomic包中类的确切用途是什么?_Java_Concurrency_Atomic_Java.util.concurrent - Fatal编程技术网

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

java中java.util.concurrent.atomic包中类的确切用途是什么?,java,concurrency,atomic,java.util.concurrent,Java,Concurrency,Atomic,Java.util.concurrent,我是相对较新的java。我试图了解包中类的用法: java.util.concurrent.atomic 我试图理解这个包的javaDoc,以便掌握它。但是我真的不知道什么时候应该使用这些类。有人能用简单的语言给出例子和更多的描述吗?thx考虑10个线程正在递增int i(初始化为0)并将值输出到控制台。你可以得到这样的结果: 1 2 2 3 3 5 6 6 8 10 例如,AtomicInteger确保每个线程可以原子地增减值,确保写入操作以同步方式进行,对于10个线程,输出将始终为: 1

我是相对较新的java。我试图了解包中类的用法:

java.util.concurrent.atomic


我试图理解这个包的javaDoc,以便掌握它。但是我真的不知道什么时候应该使用这些类。有人能用简单的语言给出例子和更多的描述吗?thx

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

1
2
2
3
3
5
6
6
8
10
例如,AtomicInteger确保每个线程可以原子地增减值,确保写入操作以同步方式进行,对于10个线程,输出将始终为:

1
2
3
4
5
6
7
8
9
10

您不明白什么?“在不使用同步的情况下防止线程干扰”阅读跟踪,而不是JavaDocs关键字是为什么在第一个示例中从3跳到5,从6跳到8?两个线程不应该同时读取一个值并写入相同的值吗?