gpt4 book ai didi

java - 哪些操作是原子操作

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:32 24 4
gpt4 key购买 nike

我有点困惑...

除了long和double之外,多个线程的读\写都是原子操作,是否只需要对long和double使用volatile?

最佳答案

听起来你指的是 this section的 JLS。它保证所有原始类型——除了 doublelong——所有线程都会看到 some 实际写入该变量的值. (对于 doublelong,前四个字节可能由一个线程写入,最后四个字节由另一个线程写入,如 JLS 的该部分中所指定。 ) 但他们不一定会同时看到相同值,除非变量被标记为 volatile

即使使用 volatilex += 3 也不是原子的,因为它是 x = x + 3,它执行一次读取和一次写入,并且在读取和写入之间可能会有对 x 的写入。这就是为什么我们在 java.util.concurrent 中有 AtomicInteger 和其他实用程序的原因。

关于java - 哪些操作是原子操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9983591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com