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 ;
(depuis C++11)

Bloque jusqu'à ce que le résultat soit disponible. valid ( ) == true après l'appel.

Le comportement n'est pas défini si valid ( ) == false avant l'appel à cette fonction.

Table des matières

Paramètres

(aucun)

Valeur de retour

(aucun)

Exceptions

Peut lever des exceptions définies par l'implémentation.

Notes

Les implémentations sont encouragées à détecter le cas où valid ( ) == false avant l'appel et à lever une std::future_error avec une condition d'erreur de std::future_errc::no_state .


Exemple

#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';
}

Sortie possible :

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

Voir aussi

attend le résultat, revient s'il n'est pas disponible après la durée de timeout spécifiée
(fonction membre publique)
attend le résultat, revient s'il n'est pas disponible jusqu'à ce que le point temporel spécifié soit atteint
(fonction membre publique)