0%

java | 有序性

  • 有序性
    • 保证指令不会受 CPU 指令并行优化的影响

有序性

1
2
i = ...
j = ...

在多线程下,指令可能会发生重排变成

1
2
j = ...
i = ...

因为多线程是并行的,所以,指令执行顺序是不确定的。

重排序解决

使用 volatile 进行修饰。

1
2
3
4
5
6
volatile int i = 0;

j = ...
c = ...
d = ...
i = ...

volatile 修饰的变量之前的执行顺序都保持不变。

请我喝杯咖啡吧~