Volatile关键字

Volatile

Volatile是Java虚拟机提供的轻量级的同步机制,主要特性有:
1.多线程之间保证可见性
2.不保证原子性
3.禁止指令重排

1.保证可见性

在JVM的内存模型中,每个线程都有一块单独的内存区域,并且会存储共享变量的副本到线程私有的内存区域中。这样的情况,使得在多线程的场景下,就会出现各线程中同一变量的值不一致的问题。但是在多线程环境中,被volatile修饰的变量在某个线程中被修改,在各个线程中可见。

2.不保证原子性

不可分割,一个线程在执行时,不能被打扰,也不能被分割,要么同时成功,要么同时失败。

3.禁止指令重排

.class文件会被jvm编译为一些二进制的指令被操作系统识别执行,但是实际执行过程中,线程的执行指令并不一定会按照指令的先后顺序执行,而是可能发生指令的乱序执行,这样在多线程访问时也会出现一些变量值不一致的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值