在线文档教程
C++
线程支持 | Thread support

std::swap(std::thread)

STD::交换%28std::线程%29

void swap( thread &lhs, thread &rhs (since C++11)

重载std::swap算法std::thread.交换lhs与...rhs.有效地打电话lhs.swap(rhs)...

参数

lhs, rhs-threads whose states to swap

返回值

%280%29

例外

noexcept规格:

noexcept

二次

#include <iostream> #include <thread> #include <chrono> 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::thread t1(foo std::thread t2(bar std::cout << "thread 1 id: " << t1.get_id() << std::endl; std::cout << "thread 2 id: " << t2.get_id() << std::endl; std::swap(t1, t2 std::cout << "after std::swap(t1, t2):" << std::endl; std::cout << "thread 1 id: " << t1.get_id() << std::endl; std::cout << "thread 2 id: " << t2.get_id() << std::endl; t1.swap(t2 std::cout << "after t1.swap(t2):" << std::endl; std::cout << "thread 1 id: " << t1.get_id() << std::endl; std::cout << "thread 2 id: " << t2.get_id() << std::endl; t1.join( t2.join( }

二次

产出:

二次

thread 1 id: 1892 thread 2 id: 2584 after std::swap(t1, t2): thread 1 id: 2584 thread 2 id: 1892 after t1.swap(t2): thread 1 id: 1892 thread 2 id: 2584

二次

另见

swapswaps two thread objects (public member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/线程/线程/swap 2