在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

如何分析Volatile变量

136次阅读
没有评论

共计 1217 个字符,预计需要花费 4 分钟才能阅读完成。

今天就跟大家聊聊有关如何分析 Volatile 变量,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

    在程序设计中,尤其是在 C 语言、C++、C# 和 Java 语言中,使用 volatile 关键字声明的变量或对象通常拥有和优化和(或)多线程相关的特殊属性。通常,volatile 关键字用来阻止(伪)编译器对那些它认为变量的值不能“被代码本身”改变的代码上执行任何优化。在 C 环境中,volatile 关键字的真实定义和适用范围经常被误解,加之 C ++、C# 和 Java 都从 C 中神秘地“继承”了 volatile,在这些编程语言中,因此这些语言中 volatile 的用法和语义大相径庭。

    Java 也支持 volatile 关键字,但它被用于其他不同的用途。当 volatile 用于一个作用域时,Java 保证如下:

   1.(适用于 Java 所有版本)读和写一个 volatile 变量有全局的排序。也就是说每个线程访问一个 volatile 作用域时会在继续执行之前读取它的当前值,而不是(可能)使用一个缓存的值,直接从主存中读取,避免编译器优化。(但是并不保证经常读写 volatile 作用域时读和写的相对顺序,也就是说通常这并不是有用的线程构建)。

   2.(适用于 Java5 及其之后的版本)volatile 的读和写建立了一个 happens-before 关系,类似于申请和释放一个互斥锁。

      这时,联想到的另一个关键词便是 synchronized. 可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。当两个并发线程访问同一个对象 object 中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。然而,当一个线程访问 object 的一个加锁代码块时,另一个线程仍然可以访问该 object 中的非加锁代码块。

    因此,两个关键词的区别如下:

1.volatile 本质是在告诉 jvm 当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized 则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。

2.volatile 仅能使用在变量级别;synchronized 则可以使用在变量、方法、和类级别的。

3.volatile 仅能实现变量的修改可见性,并能保证原子性;而 synchronized 则可以保证变量的修改可见性和原子性。

4.volatile 不会造成线程的阻塞;synchronized 可能会造成线程的阻塞。 

5.volatile 标记的变量不会被编译器优化;synchronized 标记的变量可以被编译器优化。

看完上述内容,你们对如何分析 Volatile 变量有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1217字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 特黄特黄视频 | 成年视频网站免费观看 | 久久天堂| 亚洲暴爽av天天爽日日碰 | 欧美日韩一卡 | 乱人伦一区二区三区 | 天堂网在线.www天堂在线 | 欧美日韩亚洲精品一区 | 国产亚洲精品美女久久久久 | 麻豆久久久久久久 | 国产美女一级特黄毛片 | 中文字幕一区2区 | 污污的网站免费 | 国产精品欧美在线不卡 | 中文字幕精品一区二区三区视频 | 欲香欲色天天综合和网 | 九九九精品视频免费 | 欧美日韩一区二区视频图片 | 国产亚洲欧美一区二区 | 欧美毛片大全 | 青青在线精品 | 国产精品夜夜春夜夜爽久久小 | 久久久久国产精品人妻aⅴ网站 | 久久青青草免费线频观 | 国产在线不卡一区二区三区 | 999久久| 久久99亚洲精品久久久久网站 | 少妇被又大又粗又爽毛片久久黑人 | 国产va精品免费观看 | 波多野结衣绝顶大高潮 | 国产精品美女自在线观看免费 | 一级特黄毛片 | 久久99久久99 | 久久亚洲成人 | 国产片一级aaa毛片视频 | 成人在线免费 | 嫩草研究院在线观看 | 色88久久久久高潮综合影院 | 美女丝袜网站 | 日本少妇被黑人猛cao | 在线观看久草视频 |