std::jthread::swap
来自 cppreference.cn
                    
                                        
                    
                    
                                                            
                    
| void swap( std::jthread& other ) noexcept; | (C++20 起) | |
交换两个 jthread 对象的底层句柄。
| 目录 | 
[编辑] 参数
| 其他 | - | 要交换的 jthread | 
[编辑] 返回值
(无)
[编辑] 示例
运行此代码
#include <chrono> #include <iostream> #include <thread> void foo() { std::this_thread::sleep_for(std::chrono::seconds(1)); } void bar() { std::this_thread::sleep_for(std::chrono::seconds(1)); } int main() { std::jthread t1(foo); std::jthread t2(bar); std::cout << "thread 1 id: " << t1.get_id() << '\n' << "thread 2 id: " << t2.get_id() << '\n'; std::swap(t1, t2); std::cout << "after std::swap(t1, t2):" << '\n' << "thread 1 id: " << t1.get_id() << '\n' << "thread 2 id: " << t2.get_id() << '\n'; t1.swap(t2); std::cout << "after t1.swap(t2):" << '\n' << "thread 1 id: " << t1.get_id() << '\n' << "thread 2 id: " << t2.get_id() << '\n'; }
可能的输出
thread 1 id: 140185268262656 thread 2 id: 140185259869952 after std::swap(t1, t2): thread 1 id: 140185259869952 thread 2 id: 140185268262656 after t1.swap(t2): thread 1 id: 140185268262656 thread 2 id: 140185259869952
[编辑] 参阅
| (C++20) | 特化 std::swap 算法 (函数) | 


