对volatile不是很理解,和使用场景

volatile修饰的变量,它将具备两种性质:

第一是保证此变量对所有线程的可见性,即当一个线程修改了这个变量后,这个新值对于其他线程来说是立即可见的。

第二就是保证不进行指令重排序。

求大神科普下,看到线程这里不是很明白,volatile具备可见性没感觉出和一般的变量有什么区别

主要是对多cpu来说的,单cpu没有区别