◐ Shell
clean mode source ↗

std::thread::swap - cppreference.com

De cppreference.com

void swap( std::thread& other ) noexcept;

(desde C++11)

Intercambia los identificadores subyacentes de dos objetos thread.

Parámetros

other - El thread con el cual intercambiar.

Valor de retorno

(Ninguno)

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::thread t1(foo);
    std::thread 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';

    t1.join();
    t2.join();
}

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

Véase también