从品牌网站建设到网络营销策划,从策略到执行的一站式服务
是java虚拟机提供的轻量级的同步机制(乞丐版的synchronized)
具备三个性质:保证可见性,不保证原子性,禁止指令重排
前置知识: 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元起,快前往官网查看详情吧
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图