Share via


스레드 풀 API

스레드 풀 API(애플리케이션 프로그래밍 인터페이스)는 개체 기반 디자인을 사용합니다. 다음 각 개체는 사용자 모드 데이터 구조로 표시됩니다.

  • 풀 개체는 작업을 수행하는 데 사용할 수 있는 작업자 스레드 집합입니다. 각 프로세스는 필요에 따라 서로 다른 특성을 가진 여러 격리된 풀을 만들 수 있습니다. 각 프로세스에 대한 기본 풀도 있습니다.
  • 클린 그룹은 콜백 생성 개체 집합과 연결됩니다. 각 클린 그룹의 멤버인 모든 개체를 대기하고 해제하는 함수가 있습니다. 이렇게 하면 애플리케이션이 만든 모든 개체를 추적할 수 없습니다.
  • 작업 개체는 풀에 할당되고 필요에 따라 클린 그룹에 할당됩니다. 게시할 수 있으므로 풀의 작업자 스레드가 콜백을 실행할 수 있습니다. 작업 개체에는 여러 게시물이 있을 수 있습니다. 각각은 콜백을 생성합니다. 리소스 부족으로 인해 사후 작업이 실패할 수 없습니다.
  • 타이머 개체는 콜백 예약을 제어합니다. 타이머가 만료될 때마다 해당 콜백이 작업자 풀에 게시됩니다. 리소스 부족으로 인해 타이머 설정이 실패할 수 없습니다.
  • 대기 개체를 사용하면 대기자 스레드가 대기 가능한 핸들에서 대기합니다. 대기가 충족되거나 제한 시간이 만료되면 대기자 스레드는 대기 개체의 콜백을 대기의 작업자 풀에 게시합니다. 리소스 부족으로 인해 대기를 설정하지 못할 수 있습니다.
  • I/O 개체는 파일 핸들을 스레드 풀의 I/O 완료 포트와 연결합니다. 비동기 I/O 작업이 완료되면 작업자 스레드가 작업의 상태 선택하고 I/O 개체의 콜백을 호출합니다.

다음 표에서는 원래 및 현재 스레드 풀 API의 기능에 대해 설명합니다.

기능 원래 API 현재 API
동기 RegisterWaitForSingleObject
UnregisterWaitEx
CloseThreadpoolWait
CreateThreadpoolWait
SetThreadpoolWait
WaitForThreadpoolWaitCallbacks
작업 QueueUserWorkItem
CloseThreadpoolWork
CreateThreadpoolWork
SubmitThreadpoolWork
TrySubmitThreadpoolCallback
WaitForThreadpoolWorkCallbacks
타이머 CreateTimerQueue
CreateTimerQueueTimer
ChangeTimerQueueTimer
DeleteTimerQueueTimer
DeleteTimerQueueEx
CloseThreadpoolTimer
CreateThreadpoolTimer
IsThreadpoolTimerSet
SetThreadpoolTimer
WaitForThreadpoolTimerCallbacks
I/O BindIoCompletionCallback
CancelThreadpoolIo
CloseThreadpoolIo
CreateThreadpoolIo
StartThreadpoolIo
WaitForThreadpoolIoCallbacks
정리 그룹 CloseThreadpoolCleanupGroup
CloseThreadpoolCleanupGroupMembers
CreateThreadpoolCleanupGroup
CloseThreadpool
CreateThreadpool
SetThreadpoolThreadMaximum
SetThreadpoolThreadMinimum
콜백 환경 DestroyThreadpoolEnvironment
InitializeThreadpoolEnvironment
SetThreadpoolCallbackCleanupGroup
SetThreadpoolCallbackLibrary
SetThreadpoolCallbackPool
SetThreadpoolCallbackPriority
SetThreadpoolCallbackRunsLong
콜백 CallbackMayRunLong
콜백 클린 위로 DisassociateCurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns
ReleaseSemaphoreWhenCallbackReturns
SetEventWhenCallbackReturns

 

스레드 풀

스레드 풀 함수 사용