Thread Pool
- Thread를 미리 만들어 놓은 공간입니다.
- Thread Pool의 크기는 작업 실행을 위해 미리 생성한 스레드 수입니다.
- 위키에 의하면 "컴퓨터 프로그램에서 동시실행을 위한 소프트웨어 디자인패턴" 이라고 설명 돼 있습니다.
필요성
- Thread가 생성될 때 운영체제(OS)가 요청을 받아들여 메모리공간을 확보해주고, 그 메모리를 스레드에게 할당해준다.
- Thread는 동일한 메모리영역에서 생성되고 관리되지만, 생성/수거에 드는 비용을 무시할 수 없다.
- 생성/수거 비용 절약을 위해 Thread를 미리 생성해두는 것 입니다.
동작 원리
- 프로그램(Application)에서 사용자의 요청(Task)를 작업큐(Queue)에 넣습니다.
- Thread Pool은 작업큐에 들어온 요청을 미리 생성해놓은 Tread들에게 할당합니다.
- 요청을 다 처리한 Thread들은 다시 프로그램(Application)에게 결과값을 리턴합니다.
장점
- Thread를 미리 만들어 놓음으로 써, 쓸데없는 생성/수거에 드는 비용을 절약합니다.
- Thread를 재사용할 수 있으므로 시스템 자원을 줄일 수 있습니다.
- 작업을 요청시 이미 스레드가 대기중인 상태이기때문에서 작업을 실행하는데 딜레이가 발생하지 않습니다.
단점
- Thread Pool에 Thread를 너무 많이 생성해 두었다가 사용하지 않으면 메모리 낭비가 발생할 수 있습니다.
참고
'프로그래밍' 카테고리의 다른 글
[프로그래밍] VisualStudio 종속성, 어셈블리 오류 해결 (0) | 2021.08.12 |
---|---|
VisualStudio 관리자 권한으로 빌드하기 (0) | 2021.07.15 |
[WPF] WPF 일주일 만에 배우기 - WPF 데이터 바인딩 (0) | 2021.06.27 |
[프로그래밍] 코딩테스트 사이트 (0) | 2021.04.18 |
[프로그래밍] 동기 처리, 비동기 처리, 병렬 처리 (0) | 2021.04.18 |