<execution>
Описывает политики выполнения для параллельных алгоритмов.
namespace std {
template<class T> inline constexpr bool is_execution_policy_v = is_execution_policy<T>::value;
}
namespace std::execution {
inline constexpr sequenced_policy seq { unspecified };
inline constexpr parallel_policy par { unspecified };
inline constexpr parallel_unsequenced_policy par_unseq { unspecified };
}
Имя | Описание |
---|---|
is_execution_policy Структура |
Обнаруживает политики выполнения, чтобы исключить определенные подписи функций из иначе неоднозначного разрешения перегрузки. |
Класс parallel_policy |
Используется для перегрузки параллельного алгоритма диамбигуации. Указывает, что выполнение параллельного алгоритма может быть параллелизировано. |
Класс parallel_unsequenced_policy |
Используется в качестве уникального типа для разбиения параллельных алгоритмов перегрузки. Указывает, что выполнение параллельного алгоритма может быть параллелизировано и векторизировано. |
Класс sequenced_policy |
Используется в качестве уникального типа для разбиения параллельных алгоритмов перегрузки. Указывает, что выполнение параллельного алгоритма не может быть параллелизировано. |
Параллельные алгоритмы выполняются на неопределенном количестве потоков и разделяют работу на неопределенное число секционирования данных "блоки". Пул потоков Windows управляет количеством потоков. Реализация пытается использовать доступные логические процессоры, соответствующие количеству аппаратных потоков, которые могут выполняться одновременно.
Указание parallel_policy
или parallel_unsequenced_policy
выполнение стандартных алгоритмов библиотеки выполняется параллельно с помощью пула потоков Windows. Число параллельных потоков и, следовательно, количество блоков для секционирования данных ограничено 500 потоками, так как это число потоков пула потоков по умолчанию. Дополнительные сведения см. в разделе "Пулы потоков".
До Windows 11 и Windows Server 2022 приложения по умолчанию были ограничены одной группой процессоров, имеющей не более 64 логических процессоров. Это ограничивает число одновременных выполнения потоков до 64. Дополнительные сведения см. в разделе "Группы обработчиков".
Начиная с Windows 11 и Windows Server 2022, процессы и их потоки имеют сходство процессоров, которые по умолчанию охватывают все процессоры в системе и между несколькими группами на компьютерах с более чем 64 процессорами. Ограничение числа параллельных потоков теперь составляет общее количество логических процессоров в системе.
Заголовок: <execution>
Пространство имен: std
Справочник по файлам заголовков
Безопасность потоков в стандартной библиотеке C++
Справочник по стандартной библиотеке C++