РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
814 of 815 menu

Функция async

Функция async асинхронно запускает переданную функцию и возвращает объект future, который впоследствии позволит получить результат её выполнения. В первый параметр мы передаем политику запуска (например, launch::async или launch::deferred), а во второй - саму функцию или лямбда-выражение. Все последующие параметры являются аргументами для этой функции.

Синтаксис

#include <future> std::async(policy, func, args...)

Пример

Давайте асинхронно запустим функцию, которая возвращает сумму двух чисел, и получим результат через метод get:

#include <iostream> #include <future> using namespace std; int sum(int a, int b) { return a + b; } int main() { future<int> fut = async(launch::async, sum, 2, 3); int res = fut.get(); cout << res << endl; return 0; }

Результат выполнения кода:

5

Пример

Давайте асинхронно запустим лямбда-выражение, которое возвращает строку, и получим результат через метод get:

#include <iostream> #include <future> #include <string> using namespace std; int main() { future<string> fut = async(launch::async, []() { return string("abcde"); }); string res = fut.get(); cout << res << endl; return 0; }

Результат выполнения кода:

"abcde"

Смотрите также

  • класс future,
    который представляет результат асинхронной операции
  • метод get,
    который получает результат из объекта future
  • метод wait,
    который ожидает завершения асинхронной операции
  • класс promise,
    который предоставляет способ асинхронного получения значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить