August 2021
Intermediate to advanced
450 pages
6h 57m
Chinese
说明符volatile用来指出一个对象可被线程控制范围之外的东西修改。例如:
volatile说明符主要是告知编译器不要优化掉明显冗余的读写操作。例如:
如果clock_register不是定义为volatile的,编译器完全有权利删除一个读操作并假定t1==t2。
除非是在直接处理硬件的底层代码中,否则不要使用volatile。
不要假定volatile在内存模型中有特殊含义,它确实没有。与某些新语言不同,在C++中volatile并非一种同步机制。为了进行同步,应使用atomic(见41.3节)、mutex(见42.3.1节)或condition_variable(见42.3.4节)。
Read now
Unlock full access