Один из способов получить std::future
- через std::async
:
int foo()
{
return 42;
}
...
std::future<int> x = std::async(foo);
В этом примере, как распределяется хранилище для x
асинхронного состояния, и какой поток (если задействовано более одного потока) отвечает за выполнение распределения? Кроме того, имеет ли клиент std::async
какой-либо контроль над распределением?
В контексте я вижу, что один из конструкторов std::promise
может получить распределитель, но мне это не понятно, если оно можно настроить распределение std::future
на уровне std::async
.