Skip to content

Latest commit

 

History

History
30 lines (10 loc) · 972 Bytes

File metadata and controls

30 lines (10 loc) · 972 Bytes

69、volatile原来还可以保证long和double变量写操作的原子性

volatile对原子性保障的语义,在java里很有限的,几乎可以忽略不计。32位的java虚拟机里面,对long/double变量的赋值写是不原子的,此时如果对变量加上了volatile,就可以保证在32位java虚拟机里面,对long/double变量的赋值写是原子的了

int i = 0,原子性,volatile,java语言规范就规定了,原子性的

volatile long i;

多个线程执行:i = 30,此时就不要紧了,因为volatile修饰了,就可以保证这个赋值操作是原子的了

你以后出去面试也可能会遇到杠精面试官,你要说volatile是保证可见性和有序性的,不保证原子性,杠精面试官,素质差,很二,心胸很狭隘,volatile可以保证原子性,此时看过这一讲之后

i++,复杂的一些场景

resources = loadResources();

resources.execute();

ready = true;