728x90
쓰레드의 생성과 소멸은 시스템에 많은 부담을 준다.
컴퓨터의 쓰레드 생성 및 소멸로 인해 성능이 저하되는 것을 피하기 위해 존재하는 것이 쓰레드 풀 이다.
쓰레드 풀의 기본 원리는 쓰레드 재활용이다.
할당된 일을 마친 쓰레드를 소멸시키지 않고, 쓰레드 풀에 저장해 뒀다가 필요할 때 다시 꺼내 쓰는 개념이다.
쓰레드 풀은 처리할 일(Work)이 등록되기 전에 생성된다.
풀이 생성됨과 동시에 쓰레드들도 생성되어 풀에서 대기하게 된다.
쓰레드 풀이 생성된 상태에서 처리해야 할 일(Work)이 하나 등록되었다면 쓰레드 풀에 존재하는 쓰레드 하나를 임의로 할당해서 일을 처리한다.
쓰레드 풀에 존재하는 쓰레드 수 보다 처리해야할 일의 수가 많다면, 일이 순서대로 처리되도록 디자인 할 수 있고, 추가적인 쓰레드가 생성되도록 풀을 디자인 할 수도 있다.
쓰레드 풀링은 한번 생성한 쓰레드를 재활용해서 시스템의 부담을 덜어주기 위한 기법이다.
쓰레드 풀은 여러개의 쓰레드를 생성한다. 그리고 실행해야 할 일이 등록될 때마다 미리 생성해 놓은 쓰레드 중 하나를 할당한다. 그리고 일이 끝나면 쓰레드는 소멸시키지 않고 다음 일을 위해서 보관한다.
728x90
'Programming > Windows System Programming' 카테고리의 다른 글
캐쉬(cache)와 캐쉬 알고리즘 (0) | 2020.08.07 |
---|---|
메모리 계층 (0) | 2020.08.07 |
타이머(Timer) 기반 동기화 (0) | 2020.08.03 |
실행순서 동기화 - 이벤트 기반 동기화 (0) | 2020.08.01 |
커널모드 동기화(Synchronization In kernel Mode) - 이름있는 뮤텍스(Named Mutex) (0) | 2020.07.31 |