Espacios de nombres
Variantes
Acciones

std::async

De cppreference.com
< cpp‎ | thread
 
 
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)
async
(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
 
Definido en el archivo de encabezado <future>
(1)
template< class Function, class... Args>

std::future<std::result_of_t<std::decay_t<Function>(std::decay_t<Args>...)>>

    async( Function&& f, Args&&... args );
(desde C++11)
(hasta C++17)
template< class Function, class... Args>

std::future<std::invoke_result_t<std::decay_t<Function>,
                                 std::decay_t<Args>...>>

    async( Function&& f, Args&&... args );
(desde C++17)
(hasta C++20)
template< class Function, class... Args>

[[nodiscard]]
std::future<std::invoke_result_t<std::decay_t<Function>,
                                 std::decay_t<Args>...>>

    async( Function&& f, Args&&... args );
(desde C++20)
(2)
template< class Function, class... Args >

std::future<std::result_of_t<std::decay_t<Function>(std::decay_t<Args>...)>>

    async( std::launch policy, Function&& f, Args&&... args );
(desde C++11)
(hasta C++17)
template< class Function, class... Args >

std::future<std::invoke_result_t<std::decay_t<Function>,
                                 std::decay_t<Args>...>>

    async( std::launch policy, Function&& f, Args&&... args );
(desde C++17)
(hasta C++20)
template< class Function, class... Args >

[[nodiscard]]
std::future<std::invoke_result_t<std::decay_t<Function>,
                                 std::decay_t<Args>...>>

    async( std::launch policy, Function&& f, Args&&... args );
(desde C++20)


La plantilla de función async ejecuta la función f asíncronamente (potencialmente en un hilo separado que puede ser parte de una reserva de hilos) y devuelve un std::future que eventualmente contendrá el resultado de esa llamada a función.

1) Se comporta como si se llamara a (2) con policy siendo std::launch::async | std::launch::deferred. En otras palabras, f puede ejecutarse en otro hilo o puede ejecutarse asíncronamente cuando el