swap(std::jthread)
De cppreference.com
<tbody>
</tbody>
friend void swap( jthread &lhs, jthread &rhs ) noexcept; |
(desde C++20) | |
Sobrecarga el algoritmo std::swap para std::jthread. Intercambia el estado de lhs con el de rhs. Efectivamente llama a lhs.swap(rhs). Esta función no es visible a una búsqueda no calificada o calificada, y puede encontrarse solamente mediante la búsqueda dependiente de argumento cuando std::jthread es una clase asociada de los argumentos.
Parámetros
| lhs, rhs | - | jthreads cuyos estados hay que intercambiar. |
Valor de retorno
(Ninguno)
Ejemplo
Ejecuta este código
#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()
{
using std::swap;
std::jthread t1(foo);
std::jthread t2(bar);
std::cout << "id del hilo 1: " << t1.get_id() << '\n'
<< "id del hilo 2: " << t2.get_id() << '\n';
swap(t1, t2);
std::cout << "después de std::swap(t1, t2):" << '\n'
<< "id del hilo 1: " << t1.get_id() << '\n'
<< "id del hilo 2: " << t2.get_id() << '\n';
t1.swap(t2);
std::cout << "después de t1.swap(t2):" << '\n'
<< "id del hilo 1: " << t1.get_id() << '\n'
<< "id del hilo 2: " << t2.get_id() << '\n';
}
Posible salida:
id del hilo 1: 1892
id del hilo 2: 2584
después de std::swap(t1, t2):
id del hilo 1: 2584
id del hilo 2: 1892
después de t1.swap(t2):
id del hilo 1: 1892
id del hilo 2: 2584
Véase también
| Intercambia dos objetos hilo (función miembro pública de std::thread)
|