用于解决CPU指令乱序、编译器重排、多CPU内存同步等带来的问题的机制是?
A. 内存屏障
B. 信号量
C. 自旋锁
D. volatile关键字
内存屏障可以限制CPU对内存的访问,表现在高级编程语言中就是加锁
内存屏障,也称内存栅栏,内存栅障,屏障指令等, 是一类同步屏障指令,使得CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之前的所有读写操作都执行后才可以开始执行此点之后的操作。
大多数现代计算机为了提高性能而采取乱序执行,这使得内存屏障成为必须。
语义上,内存屏障之前的所有写操作都要写入内存;内存屏障之后的读操作都可以获得同步屏障之前的写操作的结果。因此,对于敏感的程序块,写操作之后、读操作之前可以插入内存屏障。
链接:https://www.nowcoder.com/questionTerminal/875cb8ffb1234ba99e90b53136fd107c