Назад к вопросамКогда и в каком потоке выполнится
JuniorТеорияЧасто
Когда и в каком потоке выполнится answer в этой программе?
#include <future>
#include <iostream>
int answer() {
return 42;
}
int main() {
std::future<int> f = std::async(std::launch::deferred, answer);
std::cout << f.get() << '\n';
}Внутри f.get(), в потоке функции main, который вызвал get
- Ждать, что
std::asyncсразу запустит функцию: сstd::launch::deferredона не выполняется до вызоваget()илиwait(). - Ждать, что
get()запустит новый поток: отложенная функция выполняется в том потоке, который вызвалget(), как обычный вызов.
- Что изменится с политикой
std::launch::async? - Какую политику использует
std::async(answer), если её не указать?