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

std::thread::swap

线程::交换

void swap( thread& other (since C++11)

交换两个线程对象的底层句柄。

参数

other-the thread to swap with

返回值

%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

二次

另见

std::swap(std::thread) (C++11)specializes the std::swap algorithm (function template)

© cppreference.com

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

http://en.cpPreference.com/w/cpp/线程/线程/交换