std::atomic<T>::exchange
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    | (C++11 起) | ||
|   T exchange( T desired, std::memory_order order = std::memory_order_seq_cst ) noexcept;  | 
||
|   T exchange( T desired, std::memory_order order = std::memory_order_seq_cst ) volatile noexcept;  | 
||
原子地以 desired 替换底层值。操作为读-修改-写操作。根据 order 的值影响内存。
| 
 若 std::atomic<T>::is_always_lock_free 为 false 则 volatile 限定版本被弃用。  | 
(C++20 起) | 
参数
| desired | - | 要赋值的值 | 
| order | - | 要强加的内存顺序制约 | 
返回值
调用前原子对象的值。
参阅
|    (C++11)(C++11)  | 
  原子地以非原子实参的值替换原子对象的值,并返回该原子对象的旧值  (函数模板)  |