concurrency 네임스페이스 열거형

agent_상태 열거형

agent에 유효한 상태입니다.

enum agent_status;

이름 설명
agent_canceled agent을 취소했습니다.
agent_created agent 생성되었지만 시작되지 않았습니다.
agent_done agent 취소되지 않고 완료되었습니다.
agent_runnable agent 시작되었지만 메서드 run 를 입력하지 않았습니다.
agent_started agent 시작했습니다.

설명

자세한 내용은 비동기 에이전트를 참조 하세요.

요구 사항

헤더: concrt.h

Agents_EventType 열거형

에이전트 라이브러리에서 제공하는 추적 기능을 사용하여 추적할 수 있는 이벤트 형식입니다.

enum Agents_EventType;

이름 설명
AGENTS_EVENT_CREATE 개체의 생성을 나타내는 이벤트 형식입니다.
AGENTS_EVENT_DESTROY 개체의 제거를 나타내는 이벤트 형식입니다.
AGENTS_EVENT_END 일부 처리의 종료를 나타내는 이벤트 형식입니다.
AGENTS_EVENT_LINK 메시지 블록의 연결을 나타내는 이벤트 형식입니다.
AGENTS_EVENT_NAME 개체의 이름을 나타내는 이벤트 형식입니다.
AGENTS_EVENT_SCHEDULE 프로세스의 일정을 나타내는 이벤트 형식입니다.
AGENTS_EVENT_START 일부 처리의 시작을 나타내는 이벤트 형식입니다.
AGENTS_EVENT_UNLINK 메시지 블록의 연결 해제를 나타내는 이벤트 형식입니다.

요구 사항

헤더: concrt.h

ConcRT_EventType 열거형

동시성 런타임에서 제공하는 추적 기능을 사용하여 추적할 수 있는 이벤트 형식입니다.

enum ConcRT_EventType;

이름 설명
CONCRT_EVENT_ATTACH 스케줄러에 연결하는 동작을 나타내는 이벤트 유형입니다.
CONCRT_EVENT_BLOCK 컨텍스트 차단의 동작을 나타내는 이벤트 형식입니다.
CONCRT_EVENT_DETACH 스케줄러에서 분리하는 동작을 나타내는 이벤트 형식입니다.
CONCRT_EVENT_END 시작/끝 이벤트 쌍의 시작을 표시하는 이벤트 유형입니다.
CONCRT_EVENT_GENERIC 기타 이벤트에 사용되는 이벤트 유형입니다.
CONCRT_EVENT_IDLE 컨텍스트가 유휴 상태가 되는 동작을 나타내는 이벤트 형식입니다.
CONCRT_EVENT_START 시작/끝 이벤트 쌍의 시작을 표시하는 이벤트 유형입니다.
CONCRT_EVENT_UNBLOCK 컨텍스트 차단을 해제하는 동작을 나타내는 이벤트 형식입니다.
CONCRT_EVENT_YIELD 컨텍스트 생성의 동작을 나타내는 이벤트 형식입니다.

요구 사항

헤더: concrt.h 네임스페이스: 동시성

Concrt_TraceFlags 열거형

이벤트 형식에 대한 추적 플래그입니다.

enum Concrt_TraceFlags;

이름 설명
AgentEventFlag
AllEventsFlag
ContextEventFlag
PPLEventFlag
ResourceManagerEventFlag
SchedulerEventFlag
VirtualProcessorEventFlag

요구 사항

헤더: concrt.h

CriticalRegionType 열거형

컨텍스트가 있는 위험 영역의 형식입니다.

enum CriticalRegionType;

이름 설명
InsideCriticalRegion 컨텍스트가 중요한 지역 내에 있음을 나타냅니다. 중요한 지역 내에 있는 경우 스케줄러에서 비동기 일시 중단이 숨겨집니다. 이러한 일시 중단이 발생하면 Resource Manager는 스레드가 실행될 때까지 기다렸다가 스케줄러를 다시 호출하는 대신 다시 시작합니다. 이러한 지역 내에서 가져온 모든 잠금은 매우 주의해야 합니다.
InsideHyperCriticalRegion 컨텍스트가 매우 중요한 지역 내에 있음을 나타냅니다. 매우 중요한 영역 내에 있는 경우 동기 및 비동기 일시 중단이 모두 스케줄러에서 숨겨집니다. 이러한 일시 중단 또는 차단이 발생하는 경우 리소스 관리자는 스레드가 실행될 때까지 기다렸다가 스케줄러를 다시 호출하는 대신 다시 시작합니다. 이러한 지역 내에서 수행된 잠금은 해당 지역 외부에서 실행되는 코드와 공유해서는 안 됩니다. 이렇게 하면 예기치 않은 교착 상태가 발생합니다.
OutsideCriticalRegion 컨텍스트가 중요한 지역 외부에 있음을 나타냅니다.

요구 사항

헤더: concrtrm.h

DynamicProgressFeedbackType 열거형

DynamicProgressFeedback 정책에서 스케줄러에 대한 리소스를 스케줄러에서 수집한 통계 정보에 따라 균형을 조정할지, 아니면 IVirtualProcessorRoot 인터페이스의 ActivateDeactivate 메서드 호출을 통해 유휴 상태로 들어오고 나가는 가상 프로세서를 기준으로만 균형을 조정할지를 설명하는 데 사용됩니다. 사용 가능한 스케줄러 정책에 대한 자세한 내용은 PolicyElementKey를 참조 하세요.

enum DynamicProgressFeedbackType;

이름 설명
ProgressFeedbackDisabled 스케줄러는 진행률 정보를 수집하지 않습니다. 리밸런싱은 기본 하드웨어 스레드의 구독 수준에 따라 수행됩니다. 구독 수준에 대한 자세한 내용은 IExecutionResource::CurrentSubscriptionLevel을 참조하세요.

이 값은 런타임에서 사용하도록 예약되어 있습니다.
ProgressFeedbackEnabled 스케줄러는 진행률 정보를 수집하여 리소스 관리자에게 전달합니다. 리소스 관리자는 이 통계 정보를 활용하여 기본 하드웨어 스레드의 구독 수준 외에도 스케줄러를 대신하여 리소스의 균형을 조정합니다. 구독 수준에 대한 자세한 내용은 IExecutionResource::CurrentSubscriptionLevel을 참조하세요.

join_type 열거형

join 메시징 블록의 형식입니다.

enum join_type;

이름 설명
greedy Greedy join 메시징 블록은 전파 시 즉시 메시지를 수락합니다. 이는 더 효율적이지만 네트워크 구성에 따라 라이브 잠금이 가능합니다.
non_greedy 비욕심 join 메시징 블록은 메시지를 연기하고 모든 메시지가 도착한 후 시도하고 사용합니다. 작동이 보장되지만 속도가 느립니다.

요구 사항

헤더: agents.h

message_상태 열거형

블록에 대한 message 개체 제공에 유효한 응답입니다.

enum message_status;

이름 설명
accepted 대상이 메시지를 수락했습니다.
declined 대상이 메시지를 수락하지 않았습니다.
missed 대상이 메시지를 수락하려고 했지만 더 이상 사용할 수 없습니다.
postponed 대상이 메시지를 연기했습니다.

요구 사항

헤더: agents.h

PolicyElementKey 열거형

스케줄러 동작의 측면을 설명하는 정책 키입니다. 각 정책 요소는 키-값 쌍으로 설명됩니다. 스케줄러 정책과 스케줄러에 미치는 영향에 대한 자세한 내용은 작업 스케줄러를 참조 하세요.

enum PolicyElementKey;

이름 설명
ContextPriority 스케줄러의 각 컨텍스트에 대한 운영 체제 스레드 우선 순위입니다. 이 키를 값 INHERIT_THREAD_PRIORITY 으로 설정하면 스케줄러의 컨텍스트가 스케줄러를 만든 스레드의 우선 순위를 상속합니다.

유효한 값: Windows SetThreadPriority 함수에 유효한 값 및 특수 값 INHERIT_THREAD_PRIORITY

기본값: THREAD_PRIORITY_NORMAL
ContextStackSize 스케줄러에 있는 각 컨텍스트의 예약된 스택 크기(킬로바이트)입니다.

유효한 값: 양의 정수

기본값: 0스택 크기에 대한 프로세스의 기본값이 사용됨을 나타냅니다.
DynamicProgressFeedback 스케줄러에서 수집된 통계 정보에 따라 스케줄러에 대한 리소스의 균형을 조정할지 또는 기본 하드웨어 스레드의 구독 수준에 따라 균형을 조정할지 여부를 결정합니다. 자세한 내용은 DynamicProgressFeedbackType을 참조 하세요.

유효한 값: 열거형의 DynamicProgressFeedbackType 멤버 또는 ProgressFeedbackEnabledProgressFeedbackDisabled

기본값: ProgressFeedbackEnabled
LocalContextCacheSize SchedulingProtocol 정책 키를 값EnhanceScheduleGroupLocality으로 설정하면 가상 프로세서 로컬 큐당 캐시할 수 있는 실행 가능한 컨텍스트의 최대 수를 지정합니다. 이러한 컨텍스트는 일반적으로 실행 가능해진 가상 프로세서에서 LIFO(Last-in-First-out) 순서로 실행됩니다. 이 정책 키는 키가 값EnhanceForwardProgress으로 설정된 경우 아무런 의미가 SchedulingProtocol 없습니다.

유효한 값: 음수가 아닌 정수

기본값: 8
MaxConcurrency 스케줄러에서 원하는 최대 동시성 수준입니다. 리소스 관리자는 처음에 이 많은 가상 프로세서를 할당하려고 합니다. MaxExecutionResources 특수 값은 원하는 동시성 수준이 컴퓨터의 하드웨어 스레드 수와 동일함을 나타냅니다. 지정된 MinConcurrency 값이 컴퓨터의 하드웨어 스레드 수보다 크고 지정된 MaxExecutionResources경우 해당 값 MaxConcurrency 은 설정된 MinConcurrency값과 MaxConcurrency 일치하도록 발생합니다.

유효한 값: 양의 정수 및 특수 값 MaxExecutionResources

기본값: MaxExecutionResources
MaxPolicyElementKey 최대 정책 요소 키입니다. 유효한 요소 키가 아닙니다.
MinConcurrency 리소스 관리자가 스케줄러에 제공해야 하는 최소 동시성 수준입니다. 스케줄러에 할당된 가상 프로세서 수는 최소값 아래로 이동하지 않습니다. MaxExecutionResources의 특수 값은 최소 동시성 수준이 컴퓨터의 하드웨어 스레드 수와 동일함을 나타냅니다. 지정된 MaxConcurrency 값이 컴퓨터의 하드웨어 스레드 수보다 작고 지정된 MaxExecutionResources경우 설정된 값과 MinConcurrency 일치하도록 값 MinConcurrencyMaxConcurrency낮아집니다.

유효한 값: 음수가 아닌 정수 및 특수 값 MaxExecutionResources입니다. 동시성 런타임이 스케줄러의 생성에 사용되는 스케줄러 정책의 경우에는 값 0이 유효하지 않습니다.

기본값: 1
SchedulerKind 스케줄러가 기본 실행 컨텍스트에 사용할 스레드 형식입니다. 자세한 내용은 SchedulerType을 참조하세요.

유효한 값: SchedulerType 열거형의 멤버. 예: ThreadScheduler

기본값: ThreadScheduler. 이는 모든 운영 체제에서 Win32 스레드로 변환됩니다.
SchedulingProtocol 스케줄러에서 사용할 일정 알고리즘에 대해 설명합니다. 자세한 내용은 SchedulingProtocolType을 참조 하세요.

유효한 값: 열거형의 SchedulingProtocolType 멤버 또는 EnhanceScheduleGroupLocalityEnhanceForwardProgress

기본값: EnhanceScheduleGroupLocality
TargetOversubscriptionFactor 하드웨어 스레드당 가상 프로세서의 미정 수입니다. 필요할 경우 시스템의 하드웨어 스레드로 MaxConcurrency를 만족시키기 위해 리소스 관리자에서 대상 초과 구독 비율을 증가시킬 수 있습니다.

유효한 값: 양의 정수

기본값: 1
WinRTInitialization

요구 사항

헤더: concrt.h

SchedulerType 열거형

SchedulerKind 정책에서 스케줄러가 기본 실행 컨텍스트에 활용해야 하는 스레드 형식을 설명하는 데 사용됩니다. 사용 가능한 스케줄러 정책에 대한 자세한 내용은 PolicyElementKey를 참조 하세요.

enum SchedulerType;

이름 설명
ThreadScheduler 일반 Win32 스레드의 명시적 요청을 나타냅니다.
UmsThreadDefault Visual Studio 2013의 동시성 런타임에서는 UMS(사용자 모드 예약 가능) 스레드가 지원되지 않습니다. UmsThreadDefaultSchedulerType 정책의 값으로 사용하면 오류가 발생하지 않습니다. 그러나 해당 정책을 사용하여 만들어진 스케줄러는 기본적으로 Win32 스레드를 사용합니다.

요구 사항

헤더: concrt.h

SchedulingProtocolType 열거형

SchedulingProtocol 정책에서 스케줄러에 활용되는 일정 알고리즘을 설명하는 데 사용됩니다. 사용 가능한 스케줄러 정책에 대한 자세한 내용은 PolicyElementKey를 참조 하세요.

enum SchedulingProtocolType;

이름 설명
EnhanceForwardProgress 스케줄러는 각 작업을 실행한 후 일정 그룹을 통해 라운드 로빈하는 것을 선호합니다. 차단되지 않은 컨텍스트는 일반적으로 FIFO(선점) 방식으로 예약됩니다. 가상 프로세서는 차단되지 않은 컨텍스트를 캐시하지 않습니다.
EnhanceScheduleGroupLocality 스케줄러는 다른 일정 그룹으로 이동하기 전에 현재 일정 그룹 내의 작업을 계속 수행하는 것을 선호합니다. 차단되지 않은 컨텍스트는 가상 프로세서별로 캐시되며 일반적으로 차단을 해제한 가상 프로세서에 의해 LIFO(Last-in-First-out) 방식으로 예약됩니다.

요구 사항

헤더: concrt.h

SwitchingProxyState 열거형

다른 스레드 프록시로의 협조적 컨텍스트 전환을 실행하는 경우 스레드 프록시의 현재 상태를 나타내는 데 사용됩니다.

enum SwitchingProxyState;

이름 설명
Blocking 호출 스레드가 협조적으로 차단되고 이후에 다시 실행되고 다른 작업을 수행할 때까지 호출자가 단독으로 소유해야 임을 나타냅니다.
Idle 호출 스레드가 스케줄러에서 더 이상 필요하지 않으며 Resource Manager로 반환되고 있음을 나타냅니다. 디스패치되는 컨텍스트는 Resource Manager에서 더 이상 사용할 수 없습니다.
Nesting 호출 스레드가 자식 스케줄러를 중첩하고 있으며 다른 스케줄러에 연결하기 위해 호출자가 필요했음을 나타냅니다.

설명

호출하는 스레드 프록시를 처리하는 방법을 Resource Manager에 지시하기 위해 형식 SwitchingProxyState 의 매개 변수가 메서드 IThreadProxy::SwitchTo 에 전달됩니다.

이 형식을 사용하는 방법에 대한 자세한 내용은 IThreadProxy::SwitchTo를 참조 하세요.

task_group_상태 열거형

task_group 또는 structured_task_group 개체의 실행 상태를 설명합니다. 이 형식의 값은 작업 그룹에 예약된 작업이 완료되기를 기다리는 수많은 메서드에 의해 반환됩니다.

enum task_group_status;

이름 설명
canceled task_group 또는 structured_task_group 개체가 취소되었습니다. 하나 이상의 작업이 실행되지 않았을 수 있습니다.
completed task_group 또는 structured_task_group 개체의 큐에 대기 중인 작업이 성공적으로 완료되었습니다.
not_complete task_group 개체의 큐에 대기 중인 작업이 완료되지 않았습니다. 이 값은 현재 동시성 런타임에서 반환되지 않습니다.

요구 사항

헤더: pplinterface.h

WinRTInitializationType 열거형

WinRTInitialization 정책에서 Windows 8 또는 그 이상 버전의 운영 체제에서 실행되는 애플리케이션에 대한 스케줄러 스레드에서 Windows 런타임이 초기화될지 여부와 초기화되는 방법을 설명하는데 사용됩니다. 사용 가능한 스케줄러 정책에 대한 자세한 내용은 PolicyElementKey를 참조 하세요.

enum WinRTInitializationType;

이름 설명
DoNotInitializeWinRT 애플리케이션이 Windows 8 또는 그 이상 버전의 운영 체제에서 실행될 경우 스케줄러 내의 스레드는 Windows 런타임을 초기화하지 않습니다.
InitializeWinRTAsMTA 애플리케이션이 Windows 8 또는 그 이상 버전의 운영 체제에서 실행할 경우 스케줄러 내의 각 스레드는 Windows 런타임을 초기화하고 이것을 멀티스레드의 일부로 선언합니다.

요구 사항

헤더: concrt.h

참고 항목

concurrency 네임스페이스