多线程--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关键字的主要内容,如果未能解决你的问题,请参考以下文章

多线程线程安全问题

多线程线程安全问题

多线程线程安全问题

java中volatile关键字的含义--volatile并不能做到线程安全

多线程之volatile关键字

Java中volatile关键字及其作用是什么?