std::future
Материал из cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Определено в заголовочном файле <future>
|
||
| template< class T > class future; |
(1) | (начиная с C++11) |
| template< class T > class future<T&>; |
(2) | (начиная с C++11) |
| template<> class future<void>; |
(3) | (начиная с C++11) |
std::future шаблон класса обеспечивающего механизм доступа к результатам асинхронных операцийОригинал:
The class template
std::future provides a mechanism to access the result of asynchronous operations:Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
- Асинхронные операции (созданные с помощью std::async, std::packaged_task, или std::promise) может обеспечить
std::futureобъект создателя, что асинхронная работа.Оригинал:An asynchronous operation (created via std::async, std::packaged_task, or std::promise) can provide astd::futureobject to the creator of that asynchronous operation.Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
- Создатель асинхронная операция может использовать различные методы, чтобы запрос, ждать, или извлечь значение из
std::future. Эти методы могут заблокировать, если асинхронная операция еще не представил значение.Оригинал:The creator of the asynchronous operation can then use a variety of methods to query, wait for, or extract a value from thestd::future. These methods may block if the asynchronous operation has not yet provided a value.Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
- Когда асинхронная операция готова к отправке в результате к Творцу, он может сделать это, изменив' общего состояния (например, std::promise::set_value), что связано с
std::futureсоздателя.Оригинал:When the asynchronous operation is ready to send a result to the creator, it can do so by modifying shared state (e.g. std::promise::set_value) that is linked to the creator'sstd::future.Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Обратите внимание, что
std::future ссылки общим состоянием, которое не используется совместно с любым другим асинхронным возвращении объектов (в отличие от std::shared_future). Оригинал:
Note that
std::future references shared state that is not shared with any other asynchronous return objects (as opposed to std::shared_future). Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
[править] Член функций
| строит будущего объекта Оригинал: constructs the future object Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
| разрушает будущего объекта Оригинал: destructs the future object Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
| перемещает будущего объекта Оригинал: moves the future object Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
| возвращает shared_future со ссылкой на результаты, связанные с *thisОригинал: returns a shared_future referring to the result associated to *thisТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
Оригинал: Getting the result Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. | |
| возвращает результат Оригинал: returns the result Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
Оригинал: State Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. | |
| проверяет, является ли будущее поделился государство с обещанием Оригинал: checks if the future has shared state with a promise Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
| ждет результата станет доступным Оригинал: waits for the result to become available Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
| waits for the result, returns if it is not available for the specified timeout duration (public функция-член) | |
| ждет результата, возвращается, если она не доступна до указанного момента времени была достигнута Оригинал: waits for the result, returns if it is not available until specified time point has been reached Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (public функция-член) | |
[править] Пример
#include <iostream> #include <future> #include <thread> int main() { // future from a packaged_task std::packaged_task<int()> task([](){ return 7; }); // wrap the function std::future<int> f1 = task.get_future(); // get a future std::thread(std::move(task)).detach(); // launch on a thread // future from an async() std::future<int> f2 = std::async(std::launch::async, [](){ return 8; }); // future from a promise std::promise<int> p; std::future<int> f3 = p.get_future(); std::thread( [](std::promise<int>& p){ p.set_value(9); }, std::ref(p) ).detach(); std::cout << "Waiting..."; f1.wait(); f2.wait(); f3.wait(); std::cout << "Done!\nResults are: " << f1.get() << ' ' << f2.get() << ' ' << f3.get() << '\n'; }
Вывод:
Waiting...Done! Results are: 7 8 9
[править] См. также
| (C++11) |
запускает функцию асинхронно (возможно, в новом потоке) и возвращает std::future, который будет содержать результат Оригинал: runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
| (C++11) |
ждет значения (возможно, ссылаются другие фьючерсы), который устанавливается в асинхронном режиме Оригинал: waits for a value (possibly referenced by other futures) that is set asynchronously Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон класса) |

