concurrency 네임스페이스 열거형
agent_status 열거형
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
인터페이스의 Activate
및 Deactivate
메서드 호출을 통해 유휴 상태로 들어오고 나가는 가상 프로세서를 기준으로만 균형을 조정할지를 설명하는 데 사용됩니다. 사용 가능한 스케줄러 정책에 대한 자세한 내용은 PolicyElementKey를 참조 하세요.
enum DynamicProgressFeedbackType;
값
속성 | 설명 |
---|---|
ProgressFeedbackDisabled |
스케줄러는 진행률 정보를 수집하지 않습니다. 리밸런싱은 기본 하드웨어 스레드의 구독 수준에 따라 수행됩니다. 구독 수준에 대한 자세한 내용은 IExecutionResource::CurrentSubscriptionLevel을 참조하세요. 이 값은 런타임에서 사용하도록 예약되어 있습니다. |
ProgressFeedbackEnabled |
스케줄러는 진행률 정보를 수집하여 리소스 관리자에게 전달합니다. 리소스 관리자는 이 통계 정보를 활용하여 기본 하드웨어 스레드의 구독 수준 외에도 스케줄러를 대신하여 리소스의 균형을 조정합니다. 구독 수준에 대한 자세한 내용은 IExecutionResource::CurrentSubscriptionLevel을 참조하세요. |
join_type 열거형
join
메시징 블록의 형식입니다.
enum join_type;
값
속성 | 설명 |
---|---|
greedy |
Greedy join 메시징 블록은 전파 시 즉시 메시지를 수락합니다. 이는 더 효율적이지만 네트워크 구성에 따라 라이브 잠금이 가능합니다. |
non_greedy |
비욕심 join 메시징 블록은 메시지를 연기하고 모든 메시지가 도착한 후 시도하고 사용합니다. 작동이 보장되지만 속도가 느립니다. |
요구 사항
헤더: agents.h
message_status 열거형
블록에 대한 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 멤버 또는 ProgressFeedbackEnabled ProgressFeedbackDisabled 기본값: 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 일치하도록 값 MinConcurrency 이 MaxConcurrency 낮아집니다.유효한 값: 음수가 아닌 정수 및 특수 값 MaxExecutionResources 입니다. 동시성 런타임이 스케줄러의 생성에 사용되는 스케줄러 정책의 경우에는 값 0 이 유효하지 않습니다.기본값: 1 |
SchedulerKind |
스케줄러가 기본 실행 컨텍스트에 사용할 스레드 형식입니다. 자세한 내용은 SchedulerType을 참조하세요. 유효한 값: SchedulerType 열거형의 멤버. 예: ThreadScheduler 기본값: ThreadScheduler . 이는 모든 운영 체제에서 Win32 스레드로 변환됩니다. |
SchedulingProtocol |
스케줄러에서 사용할 일정 알고리즘에 대해 설명합니다. 자세한 내용은 SchedulingProtocolType을 참조 하세요. 유효한 값: 열거형의 SchedulingProtocolType 멤버 또는 EnhanceScheduleGroupLocality EnhanceForwardProgress 기본값: EnhanceScheduleGroupLocality |
TargetOversubscriptionFactor |
하드웨어 스레드당 가상 프로세서의 미정 수입니다. 필요할 경우 시스템의 하드웨어 스레드로 MaxConcurrency 를 만족시키기 위해 리소스 관리자에서 대상 초과 구독 비율을 증가시킬 수 있습니다.유효한 값: 양의 정수 기본값: 1 |
WinRTInitialization |
요구 사항
헤더: concrt.h
SchedulerType 열거형
SchedulerKind
정책에서 스케줄러가 기본 실행 컨텍스트에 활용해야 하는 스레드 형식을 설명하는 데 사용됩니다. 사용 가능한 스케줄러 정책에 대한 자세한 내용은 PolicyElementKey를 참조 하세요.
enum SchedulerType;
값
속성 | 설명 |
---|---|
ThreadScheduler |
일반 Win32 스레드의 명시적 요청을 나타냅니다. |
UmsThreadDefault |
Visual Studio 2013의 동시성 런타임에서는 UMS(사용자 모드 예약 가능) 스레드가 지원되지 않습니다. UmsThreadDefault 를 SchedulerType 정책의 값으로 사용하면 오류가 발생하지 않습니다. 그러나 해당 정책을 사용하여 만들어진 스케줄러는 기본적으로 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_status 열거형
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