volatile底层原理图解

cpu层面上可见性和指令重排的由来
volatile底层原理图解_第1张图片
缓存一致性mesi原则:
M:modify,可修改,当不是i时,cpu中的变量可修改的
E:eclusive,独有,当cache1中的变量只在一个cpu中时,这个变量是e状态
S: share,共享,当cache1中的变量在多个cpu时,这个变量时s状态
I:invalid,当cache1中的变量要被其他cpu修改或修改值还没有刷新到cache1时是i状态。
只有在m和e时共享变量是可以修改的,当是s时需要先把其他cpu变量改成i状态之后才能修改。
Java可见性和指令重排的由来
volatile底层原理图解_第2张图片

你可能感兴趣的:(多线程学习)