java
동시요청 - 멀티쓰레드
rewind
2024. 2. 12. 15:22
동시요청 - 멀티쓰레드
서블릿을 누가 호출하는지? -> 쓰레드
요청마다 쓰레드를 생성
장점
- 동시요청 처리가능
- 리소스(cpu, 메모리)가 허용할 때 까지 처리가능
- 하나의 쓰레드가 지연되어도 , 나머지 쓰레드는 정상 동작
단점
- 쓰레드 => 생성비용이 매우 비싸다
- 쓰레드는 컨텍스트 스위칭 비용이 발생
- 쓰레드 생성에 제한이 없다
컨텍스트 스위칭이란?
쓰레드 풀
요청마다 쓰레드 생성의 단점을 보완
● 특징
- 필요한 쓰레드를 쓰레드 풀에 보관/관리
- 쓰레드 풀에 생성가능한 쓰레드의 최대치를 관리 , 톰캣은 최대 200개 기본 설정(변경가능)
- 쓰레드 필요시 , 이미 생성되어있는 쓰레드를 풀에서 꺼내서 사용
실무팁
● was의 주요 튜닝 포인트 -> 최대 쓰레드 수
이 값이 너무 낮다면 - 동시요청이 많을시 서버 리소스는 여유롭지만 요청처리에 걸리는 시간이 많다
=> 리소스낭비가 심하다