volatile-创新互联

是java虚拟机提供的轻量级的同步机制(乞丐版的synchronized)

专注于为中小企业提供网站设计制作、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业新和免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

具备三个性质:保证可见性,不保证原子性,禁止指令重排

前置知识:                                                                                                                                                        java内存模型 (Java Memory Model) JMM_Pr Young的博客-博客                    

JMM这组规范关于同步的规定:

1.线程解锁前,必须把共享变量的值刷新回主内存

2.线程加锁前,必须读取主内存的最新值到自己的工作内存

3.加锁和解锁是同一把锁

1.保证可见性:当一个线程修改了某个共享变量的值时,其他线程是否能够立即知道这个修改。

volatile int number=0;

这样就可以保证,一个线程更改了共享变量number的值,其他线程也能立即知道这个修改           

2.不保证原子性:

原子性:某个线程正在做某个具体业务的时候,不见不可以被打扰                                             

volatile int number=0;

同样用volatile修饰共享变量,然后用20个线程都对这个共享变量进行加一操作,理论上讲,最后number的值应该是20,但实际上最后答案并不是20,这说明valatile不保证原子性

3.禁止指令重排

指令重排是指在程序执行过程中, 为了性能考虑, 编译器和CPU可能会对指令重新排序

在单线程环境中, 程序是按序依次执行的

在多线程环境中, 程序的执行可能因为指令重排而出现乱序

                                                                                                                                                   

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

网页题目:volatile-创新互联
文章来源:https://www.cdcxhl.com/article22/dijgjc.html

成都网站建设公司_创新互联,为您提供商城网站营销型网站建设网站营销用户体验移动网站建设响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设