Что такое future в C++?
std::future в языке программирования C++ представляет собой объект, предназначенный для представления значения, которое будет доступно в будущем. Он является частью библиотеки для работы с многопоточностью (<future>), предоставляя механизм асинхронного ожидания и получения результатов вычислений, выполняемых в других потоках.
#include <iostream>
#include <future>
#include <thread>
// Функция, которую выполняет поток и возвращает результат
int calculateSquare(int x) {
return x * x;
}
int main() {
// Создание асинхронной задачи и получение std::future
std::future<int> resultFuture = std::async(calculateSquare, 5);
// Другие операции...
// Ожидание и получение результата из std::future
int result = resultFuture.get();
std::cout << "Square is: " << result << std::endl;
return 0;
}
Основные операции с std::future:
- Создание асинхронной задачи:
std::asyncсоздает асинхронную задачу и возвращает объектstd::future, связанный с результатом вычислений. - Ожидание результата: Метод
std::future::get()ожидает завершения асинхронной задачи и возвращает результат. - Проверка завершения: Метод
std::future::wait_for()позволяет проверить состояние задачи без блокировки потока.
Комментарии