Стандартная функция std::async:Есть ли реализация std :: async, которая использует пул потоков?
Функция шаблона асинхронная запускает функцию п асинхронно (возможно, в отдельном потоке, который может быть частью пула потоков) и возвращает зЬй :: будущего, которое в конечном итоге хранения результата вызова этой функции.
Существует две пусковой политики std::launch::async and std::launch::deferred. В моем компиляторе (GCC 6.2) стандартное исправление библиотеки, первое всегда создает новый поток, а второй выполняет ленивую оценку на вызывающем потоке. По умолчанию используется std::launch::deferred
.
Есть ли какая-либо реализация, которая использует пул потоков с размером, равным аппаратным потокам, доступным, если указан std::launch::async
, чтобы избежать создания двух потоков, когда std::async
используется в рекурсивном алгоритме?
Возможный дубликат [Какие реализации std :: async используют пулы потоков?] (Https://stackoverflow.com/questions/15666443/which-stdasync-implementations-use-thread -pools) –