Study

Thread란? Process와 Thread의 차이/ Thread Pool?

Developer RyanKim 2019. 5. 22. 23:22

Process

: OS로 부터 자원을 할당받아 실행중인 프로그램. 즉 메모리에 올라가서 실행중인 프로그램 단위.

 

Thread

: Process 내 에서 Task를 처리하는 단위. 따라서 한 Process 내의 Thread들은 자원을 공유.

 

이 그림만 외우면 완벽하다!

출처 : https://includestdio.tistory.com/6

장/단점비교

  Process Thread
자원공유(서로간) X O
Context Swiching 속도 느림 빠름
동기화문제 X O

 

Thread Pool

: Thread의 생성및 제거에 의한 오버헤드를 줄일 수 있어 작업효율이 향상됨.

단순하게 생각하면, 처리가 필요한 Task가 쌓이는Task Queue에서 Thread Pool의 Thread들이 Task들을 꺼내 처리하는 구조라고 생각하자.

 

이그림만 외우면 완벽해!

출처 : https://en.wikipedia.org/wiki/Thread_pool#/media/File:Thread_pool.svg

만약 웹 서버에 수많은 페이지 요청이 들어오면, Thread Pool의 Thread 수를 증가시킬 수 있다. 하지만 이에따라 사용하는 자원이 증가한다. 반대의 경우도 물론 존재한다.