Java volatile关键字

java-经验王 Java经验 发布时间:2021-11-18 09:47:33 阅读数:18929 1
下文笔者将讲述java中volatile关键字功能简介说明,如下所示:
volatile修饰变量:
 用于确保将变量的更新操作通知到其他线程
 当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,
 因此不会将该变量上的操作与其他内存操作一起重排序
 volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,
 因此在读取volatile类型的变量时总会返回最新写入的值
--------------------------------------------------------
注意事项:
   volatile修饰的变量时不会执行加锁操作
   不会使执行线程阻塞
   因此volatile变量是一种比sychronized关键字更轻量级的同步机制

Java volatile关键字运行原理

 当我们对非volatile变量进行读写的时候
 每个线程先从内存拷贝变量到CPU缓存中
 如果计算机有多个CPU,每个线程可能在不同的CPU上被处理
 这意味着每个线程可以拷贝到不同的 CPU cache 中
当变量使用volatile修饰,JVM保证了每次读变量都从内存中读,跳过 CPU cache 这一步
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202111/16372006431745.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者