校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > synchronized、volatile(后续会删除)
题目

请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?

解答

volatile只能作用于变量,保证了操作可见性和有序性,不保证原子性。

在Java的内存模型中分为主内存和工作内存,Java内存模型规定所有的变量存储在主内存中,每条线程都有自己的工作内存。

主内存和工作内存之间的交互分为8个原子操作:

1.lock
2.unlock
3.read
4.load
5.assign
6.use
7.store
8.write

volatile修饰的变量,只有对volatile进行assign操作,才可以load,只有load才可以use,这样就保证了在工作内存操作volatile变量,都会同步到主内存中。

C 0条回复 评论

帖子还没人回复快来抢沙发