swap(std::jthread)
De cppreference.com
friendvoid 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.
Contenido |
[editar]Parámetros
lhs, rhs | - | jthreads cuyos estados hay que intercambiar. |
[editar]Valor de retorno
(Ninguno)
[editar]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(){usingstd::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
[editar]Véase también
Intercambia dos objetos hilo (función miembro pública de std::thread ) |