禁止指令重排
This commit is contained in:
parent
6fa2eb7a1b
commit
5cb19aadfb
|
@ -436,7 +436,7 @@ synchronized 和 Lock 也能够保证内存可见性。它们能保证同一时
|
|||
|
||||
在 Java 内存模型中,允许编译器和处理器对指令进行重排序,重排序过程不会影响到单线程程序的执行,却会影响到多线程并发执行的正确性。
|
||||
|
||||
volatile 关键字通过添加内存屏障的方式来进制指令重排,即重排序时不能把后面的指令放到内存屏障之前。
|
||||
volatile 关键字通过添加内存屏障的方式来禁止指令重排,即重排序时不能把后面的指令放到内存屏障之前。
|
||||
|
||||
可以通过 synchronized 和 Lock 来保证有序性,它们保证每个时刻只有一个线程执行同步代码,相当于是让线程顺序执行同步代码,自然就保证了有序性。
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user