对volatile变量的读操作使用acquire semantics，对写操作使用release semantics。
编译器内存屏障.编译器会对生成的可执行代码做一定优化，造成乱序执行甚至省略（不执行）。gcc编译器在遇到内嵌汇编语句：将以此作为一条内存屏障，重排序内存操作。即此语句之前的各种编译优化将不会持续到此语句之后。也可用内建的codice_1Microsoft Visual C++的编译器内存屏障为：Intel C++编译器的内存屏障为：