2016 - 2024

感恩一路有你

volatile关键字的作用 static和Volatile的区别?

浏览量:2536 时间:2021-03-14 06:12:23 作者:admin

static和Volatile的区别?

静态就是静态,volatile就是volatile。RAM中的数据是不稳定的,而ROM中的数据是静态的。内存是计算机的内存部分,用于存储原始数据、中间结果和指示计算机工作的程序。存储器可分为随机存取存储器(RAM)和只读存储器(ROM)。前者允许读写数据。磁盘上的程序必须先转移到内存中才能运行。CPU可以直接访问内存并与内存交换数据。计算机断电后,随机存储器中的信息将丢失。这种数据称为易失性数据。后者的信息只能读出,不能随意写入。即使停电,也不会丢失。这种数据称为静态数据。

static和Volatile的区别?

变量放在主内存中,每个使用该变量的线程都会将一个副本从主内存复制到自己的工作区进行操作。

JAVA内存模型负责保持主内存区域中字段的值与每个线程的工作区同步,即保持一致。

Static:声明此字段是静态的(可能由多个实例共享)。在主存中,这个类的所有实例的这个字段都是同一个变量,即唯一性。

Volatile,声明变量值的一致性;static,声明变量的唯一性。

另外,volatile同步机制不同于synchronized,前者是内存同步,后者不仅包括内存同步(一致性),还保证线程互斥(互斥)。

Static只声明主存变量的唯一性,不能保证工作区变量值与主存变量值的一致性。除非变量的值是不可变的,即使用final修饰符,否则static声明的变量不是线程安全的。

以下内容摘自Java语言规范的官方解释:

1)如果一个字段被声明为静态的,那么该字段实际上只存在一个条目,而不管可以创建多少个类实例(可能为零)。

2)一个字段可能被声明为volatile,在这种情况下,Java内存模型保证所有线程都会看到变量的一致值。

如何定义包,关键字是什么?

关键字是可以概括主要思想的单词或单词!

volatile关键字的作用 static线程安全问题 c++ volatile

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。