C++ Volatile 总结

虽然在C#和java等语言中volatile关键字可以使用在多线程中(由于增加了内存屏障等机制的保护),
但是在C++中volatile关键字并不适用于多线程

volatile关键字的作用是读取的时候直接从内存中读取(但是写入不会直接写入内存)以及告诉编译器不要过分优化相关代码(更改顺序等),可以用于读取易变的硬件,或者处理signal的情况。

C++中多线程数据可以使用CAS原子操作(<atomic>),或者加锁来实现。
(CAS原子操作的实现中包括内存栅栏——因此可以保证多线程安全)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。