如何人为避免out-of-order execution

如何人为避免out-of-order execution

  • 如何人为避免out-of-order execution

加入fence,即内存屏障

  • 完全内存屏障(full memory barrier)保障了早于屏障的内存读写操作的结果提交到内存之后,再执行晚于屏障的读写操作。
  • 内存读屏障(read memory barrier)仅确保了内存读操作;
  • 内存写屏障(write memory barrier)仅保证了内存写操作。

通过加入内存屏障,保证了一定程度上避免乱序执行。