Що таке 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()дозволяє перевірити стан завдання без блокування потоку.
Коментарі