다음을 통해 공유


<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 클래스 병렬 알고리즘 오버로드를 명확하게 하기 위해 고유한 형식으로 사용됩니다. 병렬 알고리즘의 실행이 병렬화되지 않도록 지정합니다.

Microsoft 전용

병렬 알고리즘은 지정되지 않은 수의 스레드에서 실행되고 작업을 지정되지 않은 수의 데이터 분할 "청크"로 나눕니다. Windows 스레드 풀은 스레드 수를 관리합니다. 구현은 동시에 실행할 수 있는 하드웨어 스레드 수에 해당하는 사용 가능한 논리 프로세서를 사용하려고 합니다.

Windows 스레드 풀을 parallel_policy 사용하여 표준 라이브러리 알고리즘을 병렬로 실행하도록 지정하거나 parallel_unsequenced_policy 발생합니다. 동시 스레드 수와 데이터 분할에 대한 "청크"의 수는 기본 스레드 풀 스레드 수이므로 500개 스레드로 제한됩니다. 자세한 내용은 스레드 풀을 참조 하세요.

Windows 11 및 Windows Server 2022 이전에는 애플리케이션이 기본적으로 논리 프로세서가 최대 64개인 단일 프로세서 그룹으로 제한되었습니다. 이렇게 하면 동시에 실행되는 스레드 수가 64개로 제한되었습니다. 자세한 내용은 프로세서 그룹을 참조 하세요.

Windows 11 및 Windows Server 2022부터 프로세스와 해당 스레드에는 기본적으로 시스템의 모든 프로세서와 64개 이상의 프로세서가 있는 컴퓨터의 여러 그룹에 걸쳐 있는 프로세서 친화성이 있습니다. 동시 스레드 수에 대한 제한은 이제 시스템의 총 논리 프로세서 수입니다.

요구 사항

머리글: <execution>

네임스페이스: std

참고 항목

헤더 파일 참조
C++ 표준 라이브러리의 스레드 안전성
C++ 표준 라이브러리 참조