java线程之volatile关键字
2016-11-17 11:30
232 查看
volatile关键字
一、一旦一个共享变量(类的成员变量,类的静态变量)被volatile修饰之后,那么就具备了两层语义;
(1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这个新值对其他线程来说是立即可见的。(2)禁止进行指令重排序
二、注意
题目:关于volatile关键字,下列描述不正确的是?
A、用volatile修饰的变量,每次更新对其他线程都是立即可见的B、对volatile变量的操作是原子性的
C、对volatile变量的操作不会造成阻塞
D、不依赖其他锁机制,多线程环境下的计数器可用volatile实现
(1)volatile只提供了保证访问该变量时,每次都是从内存中读取最新的值,并不会使用寄存器缓存该值——每次都会从内存中读取
(2)对该变量的修改,volatile不提供原子性的保证
(3)由于及时更新,很可能导致另一线程访问最新变量值,无法跳出循环的情况
(4)多线程下计数器必须使用锁保护
相关文章推荐
- Java线程:volatile关键字
- Java线程:volatile关键字
- Java线程锁,以及volatile、synchronized、Lock关键字
- Java线程:volatile关键字
- Java线程:volatile关键字
- Java线程工作内存与主内存变量交换过程及volatile关键字理解
- Java线程:volatile关键字
- Java线程入门学习5----volatile和synchronized关键字
- Java线程:volatile关键字
- Java线程工作内存与主内存变量交换过程及volatile关键字理解
- Java线程:volatile关键字
- Java多线程-通过线程的中断来深入学习interrupt方法,Volatile关键字
- Java线程:volatile关键字
- 谈谈java线程锁synchronized关键字和volatile关键字
- Java线程:volatile关键字
- Java线程:volatile关键字
- java线程中volatile关键字的作用
- Java线程:volatile关键字
- Java线程安全之volatile关键字
- Java线程:volatile关键字