Namespaces
Variants

std::future<T>:: wait

From cppreference.net

Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void wait ( ) const ;
(desde C++11)

Bloquea hasta que el resultado esté disponible. valid ( ) == true después de la llamada.

El comportamiento no está definido si valid ( ) == false antes de la llamada a esta función.

Contenidos

Parámetros

(ninguno)

Valor de retorno

(ninguno)

Excepciones

Puede lanzar excepciones definidas por la implementación.

Notas

Se recomienda a las implementaciones detectar el caso cuando valid ( ) == false antes de la llamada y lanzar una std::future_error con una condición de error de std::future_errc::no_state .


Ejemplo

#include <chrono>
#include <future>
#include <iostream>
#include <thread>
int fib(int n)
{
    if (n < 3)
        return 1;
    else
        return fib(n - 1) + fib(n - 2);
}
int main()
{
    std::future<int> f1 = std::async(std::launch::async, []() { return fib(40); });
    std::future<int> f2 = std::async(std::launch::async, []() { return fib(43); });
    std::cout << "waiting... " << std::flush;
    const auto start = std::chrono::system_clock::now();
    f1.wait();
    f2.wait();
    const auto diff = std::chrono::system_clock::now() - start;
    std::cout << std::chrono::duration<double>(diff).count() << " seconds\n";
    std::cout << "f1: " << f1.get() << '\n';
    std::cout << "f2: " << f2.get() << '\n';
}

Salida posible:

waiting... 1.61803 seconds
f1: 102334155
f2: 433494437

Véase también

espera por el resultado, retorna si no está disponible durante el tiempo de espera especificado
(función miembro pública)
espera por el resultado, retorna si no está disponible hasta que se alcanza el punto temporal especificado
(función miembro pública)