java volatile内存机制

根据《深入立即JVM》,volatile有两大特性。第一,可见性;某一线程修改volatile变量之后,其他线程会立刻得知。原理是volatile变量在某线程修改后会立刻写到主内存中去,而其他线程每次用之前都会从主内存读取(刷新)一次。第二,禁止字节码重排序;比如写入两个a、b,可能会优化指令,造成read、load、use不能紧跟,同理assign、store、write。从而可能造成不同线程读写不一致。


疑问:

  1. 普通变量多久从主内存中刷新值呢?

  2. 主内存,工作内存映射到jvm中是指那些范畴呢?


你可能感兴趣的:(java volatile内存机制)