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