
原子操作是指一个操作在执行过程中不可被其他线程观测到中间状态这个操作对应到cpu架构是一组指令。原子性同时只允许一个线程运行它。内存序为什么有内存序cpu需要进行指令优化重排编译器需要进行优化重排内存序是什么规定了多个线程访问同一个内存的语义。顺序性的优化是指在程序编译期进行指令重排优化时规定优化的顺序不能更改。具体来说就是某个线程访问内存附近能够进行怎样的优化。同步性在多处理器架构中需要将当前变量设置为同步性的一个关系及当前修改的值是否同步给所有核心。具体是指某个线程在对内存地址的更新时何时能被其他线程看见。6钟分类松散内存序memory_order_relaxed随意进行优化。memory_order_released这里主要是针对写操作修改内存的值写时这里是可以直接刷到主存以达到其值能获取到最新对于顺序来说是指上面的代码不能优化到下面去。memory_order_acquired这里主要是针对读操作这里是直接到主存中去读取顺序性来说就是下面的操作不能优化到上面去。所以acquired和released操作可以结对出现。memory_order_acq_rel在写和读都同时最新它前后优化不能进行重排相当于有内存屏障。memory_order_seq_cst默认内存序。memory_order_consum不建议使用。