|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void swap(std::thread& other)noexcept; | (since C++11) | |
Exchanges the underlying handles of two thread objects.
Contents |
| other | - | the thread to swap with |
(none)
#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::thread t1(foo);std::thread 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'; t1.join(); t2.join();}
Possible output:
thread 1 id: 140185268262656thread 2 id: 140185259869952after std::swap(t1, t2):thread 1 id: 140185259869952thread 2 id: 140185268262656after t1.swap(t2):thread 1 id: 140185268262656thread 2 id: 140185259869952
(C++11) | specializes thestd::swap algorithm (function)[edit] |