Thread Pool 동작원리
Thread Pool
- 필요한 Thread 를 Thread Pool 에 보관하고 관리한다.
- Thread Pool 에 생성 가능한 Thread 최대치를 관리한다. 톰켓은 최대 200개 기본 설정 ( 변경 가능 )
- Thread 가 필요하면, 이미 생성되어 있는 Thread 를 Thread Pool 에서 꺼내서 사용
- 사용을 종료하면 Thread Pool 에 해당 Thread 를 반납
- Thread 가 미리 생성되어 있으므로, Thread 를 생성하고 종료하는 비용(CPU)이 절약되고, 응답 시간이 빠르다.
- 생성 가능한 Thread 의 최대치가 있으므로 너무 많은 요청이 들어와도 기존 요청은 안전하게 처리할 수 있다.
✨ 최대 Thread 가 모두 사용중이여서 Thread Pool 에 남아있는 Thread 가 없다면???
➡️ 기다리는 요청은 거절하거나 특정 숫자 만큼만 대기하도록 설정할 수 있다.
✨ Thread Pool 에 최대 Thread 개수를 너무 낮게 설정하지말자
➡️ 만약 최대 10개로 설정했는데 서비스가 대박나서 100개의 요청이 온다면 나머지 90개는 대기가 발생하게 된다. 그래서 고객들이 왜 안되냐 너무 느리다 문의가 와서 서버를 들어가 CPU 사용률을 보면 5%.. 막 이렇다. 이런경우가 생기지 않도록 Thread Pool 에 Thread 최대 개수를 너무 낮게 설정 하지말자! (개발자로서 이런경우는 핵창피한 경우!!! 완전 잘못만든거임!)
참조
인프런 - Spring 기본편
'Spring' 카테고리의 다른 글
@ModelAttribute의 역할! (0) | 2022.07.03 |
---|---|
빈 스코프와 종류 (0) | 2022.07.03 |
빈 생명주기 콜백에 대해 알아보자 (0) | 2022.06.04 |
조회 빈이 2개 이상일 때 해결방법! (0) | 2022.06.04 |
[Springboot] Execution failed for task ':test' 에러 해결방법 (0) | 2022.06.04 |
댓글