Espacios de nombres
Variantes
Acciones

std::jthread::swap

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
(C++11)
Gestión genérica de bloqueo
(C++11)
(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)
(C++11)
Recuperación segura
(C++26)
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
 
 
void swap( std::jthread& other ) noexcept;
(desde C++20)

Intercambia los identificadores subyacentes de dos objetos jthread.

Contenido

[editar] Parámetros

other - El jthread con el cual 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()
{
    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';
 
    std::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: 140185268262656
id del hilo 2: 140185259869952
después de std::swap(t1, t2):
id del hilo 1: 140185259869952
id del hilo 2: 140185268262656
después de t1.swap(t2):
id del hilo 1: 140185268262656
id del hilo 2: 140185259869952

[editar] Véase también

Especializa el algoritmo std::swap.
(función) [editar]