volatile 定义共享变量
可见性:
对共享内存的改动,同步到每个使用该变量的线程,让变量改动后对所有线程可见。
原理,读写屏障
写屏障:保证在该屏障之前,对共享变量的改动,都同步到主存中
读屏障:保证在该屏障之后,对共享变量的读取,加载的是主存中的最新数据
有序性:
写屏障:保证会在指令重排时,不会将写屏障之前的代码排在写屏障之后
读屏障:保证指令重排时,不回将读屏障之后的代码排在读屏障之前
volatile 定义共享变量
可见性:
对共享内存的改动,同步到每个使用该变量的线程,让变量改动后对所有线程可见。
原理,读写屏障
写屏障:保证在该屏障之前,对共享变量的改动,都同步到主存中
读屏障:保证在该屏障之后,对共享变量的读取,加载的是主存中的最新数据
有序性:
写屏障:保证会在指令重排时,不会将写屏障之前的代码排在写屏障之后
读屏障:保证指令重排时,不回将读屏障之后的代码排在读屏障之前