std::jthread::swap
来自cppreference.com
void swap(std::jthread& other )noexcept; | (C++20 起) | |
交换两个 jthread
对象的底层句柄。
目录 |
[编辑]参数
other | - | 要与之交换的 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<<"线程 1 id: "<< t1.get_id()<<'\n'<<"线程 2 id: "<< t2.get_id()<<'\n'; std::swap(t1, t2); std::cout<<"std::swap(t1, t2) 后:"<<'\n'<<"线程 1 id: "<< t1.get_id()<<'\n'<<"线程 2 id: "<< t2.get_id()<<'\n'; t1.swap(t2); std::cout<<"t1.swap(t2) 后:"<<'\n'<<"线程 1 id: "<< t1.get_id()<<'\n'<<"线程 2 id: "<< t2.get_id()<<'\n'; }
可能的输出:
线程 1 id: 140185268262656 线程 2 id: 140185259869952 std::swap(t1, t2) 后: 线程 1 id: 140185259869952 线程 2 id: 140185268262656 t1.swap(t2) 后: 线程 1 id: 140185268262656 线程 2 id: 140185259869952
[编辑]参阅
(C++20) | 特化 std::swap 算法 (函数) |