Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::thread::swap(3)	      C++ Standard Libary	  std::thread::swap(3)

NAME
       std::thread::swap - std::thread::swap

Synopsis
	  void swap( std::thread& other	) noexcept;  (since C++11)

	  Exchanges the	underlying handles of two thread objects.

Parameters
	  other	- the thread to	swap with

Return value
	  (none)

Example
       // Run this code

	#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()	<< '\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: 140185268262656
	thread 2 id: 140185259869952
	after std::swap(t1, t2):
	thread 1 id: 140185259869952
	thread 2 id: 140185268262656
	after t1.swap(t2):
	thread 1 id: 140185268262656
	thread 2 id: 140185259869952

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

http://cppreference.com		  2022.07.31		  std::thread::swap(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::thread::swap&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help