swap(t2); std::cout << "t1.swap(t2) 后:" << '\n' << "线程 1 id: " << t1.get_id() << '\n' << "线程 2 id: " << t2.get_id() << '\n'; t1.join(); t2.join(); } 可能的输出: 线程1 id: 140185268262656 线程 2 id: 140185259869952 std::swap(t1, t2) 后:...
为什么需要 copy-and-swap 呢? 任何资源管理类(比如智能指针)都需要遵循一个规则:三法则。其中复制...
std::thread::swap voidswap(std::thread&other)noexcept; (C++11 起) 交换二个 thread 对象的底层柄。 参数 other-要与之交换的 thread 返回值 (无) 示例 #include <iostream>#include <thread>#include <chrono>voidfoo(){std::this_thread::sleep_for(std::chrono::seconds(1));}voidbar(){std::...
std::thread:: std::thread::swap From cppreference.com <cpp |thread |thread voidswap(std::thread&other)noexcept; (since C++11) Exchanges the underlying handles of two thread objects. Parameters other-the thread to swap with Return value...
#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() { using std::swap; std::thread t1(foo); std::thread t2(bar); ...