笔记:
-
java的堆和栈均可能在内存、cpu缓冲、cpu寄存器中。
-
volatile 关键字可以保证线程从主内存中读取变量,然后将修改后的变量写回主内存。
-
synchronized 块可以保证同一时间点只有一个线程访问临界区,并且线程在临界区内访问的所有变量将会从主内存中读取,当线程退出临界区时,所有修改的变量将会写回主内存,不管变量是否有 volatile 修饰。
笔记:
java的堆和栈均可能在内存、cpu缓冲、cpu寄存器中。
volatile 关键字可以保证线程从主内存中读取变量,然后将修改后的变量写回主内存。
synchronized 块可以保证同一时间点只有一个线程访问临界区,并且线程在临界区内访问的所有变量将会从主内存中读取,当线程退出临界区时,所有修改的变量将会写回主内存,不管变量是否有 volatile 修饰。