Espacios de nombres
Variantes
Acciones

swap(std::jthread)

De cppreference.com
< cpp‎ | thread‎ | jthread
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
Recuperación segura
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
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

#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)[editar]
close