美文网首页
volatile 变量和 atomic 变量有什么不同?

volatile 变量和 atomic 变量有什么不同?

作者: IAmWhoAmI | 来源:发表于2018-05-03 08:21 被阅读701次

这是个有趣的问题。首先,volatile 变量和 atomic 变量看起来很像,但功能却不一样。Volatile变量可以确保先行关系,即写操作会发生在后续的读操作之前, 但它并不能保证原子性。例如用volatile修饰count变量那么 count++ 操作就不是原子性的。而AtomicInteger类提供的atomic方法可以让这种操作具有原子性如getAndIncrement()方法会原子性的进行增量操作把当前值加一,其它数据类型和引用变量也可以进行相似操作。

相关文章

  • 多线程并发相关的几个重要基础知识点解析

    问:volatile 变量和 atomic 变量有什么不同? 答:volatile 变量和 atomic 变量看起...

  • volatile 变量和 atomic 变量有什么不同?

    这是个有趣的问题。首先,volatile 变量和 atomic 变量看起来很像,但功能却不一样。Volatile变...

  • iOS面试题-每日十道-第十二天

    一. 关键字volatile有什么含义?并给出三个不同例子 一个定义为volatile的变量是说这变量可能会被意想...

  • 技术问 - volatile有什么作用

    volatile 是一种类型修饰符,它是被设计用来修饰被不同线程访问和修改的变量,被volatile类型定义的变量...

  • unix 第七章

    自动变量,寄存器变量,易失变量 volatile setjmp 和 longjmp函数 易失变量容易被改变 所以每...

  • 【同步】

    java中的volatile和synchronized 一个volatile类型的变量不允许线程从主内存中将变量的...

  • Java Volatile

    用volatile修饰的变量,其他线程在每次使用这个变量的时候,都会读取变量修改后的最的值。volatile变量每...

  • volatile的作用

    Volatile的介绍: 使用volatile的原因: 用在多线程,目的同步变量 Volatile变量相对于锁更简...

  • JVM 深入理解(四)内存模型 下

    volatile volatile变量自身具有下列特性: 可见性。对一个volatile变量的读,总是能看到(任意...

  • 从volatile到Java内存模型

    volatile简介 volatile关键字用来修饰成员变量,用来保证并发环境下共享变量的可见性。那可见性是什么?...

网友评论

      本文标题:volatile 变量和 atomic 变量有什么不同?

      本文链接:https://www.haomeiwen.com/subject/qvtkrftx.html