C++ 标准库 std::atomic 及 std::memory_order
C++ 标准库提供了原子操作。(我已经懒得写序言了)
====================================
先来说原子操作的概念:
原子操作是多线程当中对资源进行保护的一种手段,主要作用是和互斥量(Mutex)一样,避免对资源的并发访问、修改。
互斥量的粒度衡量是作用域(哪怕作用域内只有一个变量),而原子的粒度衡量则是以一个变量或对象为单位。因此,原子相对于互斥量更加高效,但并非替代关系。
互斥量的主要作用是保护作用域内的资源,而原子的作用是保护一个变量或对象。
因此,当你需要保护的资源仅仅是某个变量或对象时,应首先考虑使用原子。
1,std::atomic
头文件:
#include <atomic>