多线程--volatile关键字
Posted z-xiaoyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程--volatile关键字相关的知识,希望对你有一定的参考价值。
多线程中的volatile关键字,有以下特性
volatile:
1、强制从公共堆栈中取得变量的值,而不是从线程私有数据栈中取得变量的值
2、程安全包含原子性和可见性两个方面,java同步机制都是围绕这两个方面来确保线程安全的
3、volatile本身并不处理数据的原子性,而是强制对数据的读写及时影响到主内存
4、volatile关键字解决的是变量读取时的可见性问题,但无法保证原子性,对于多个线程访问一个实例变量还是需要加锁同步的
我们经常使用到的还有以下关键字
AtomicInteger关键字:
原子操作是不能分割的整体,没有其他线程能够中断或检查正在原子操作中的变量,一个原子类型就是
Private AtomicIntegercount=new AtomicInteger(0);
Synchronized关键字:
1、两个特征,互斥性和可见性
2、同步synchronized不仅可以解决一个线程看到对象处于不一致的状态,还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护之前所有的修改效果
以上是关于多线程--volatile关键字的主要内容,如果未能解决你的问题,请参考以下文章