java

동시요청 - 멀티쓰레드

rewind 2024. 2. 12. 15:22

동시요청 - 멀티쓰레드

 

서블릿을 누가 호출하는지? -> 쓰레드

 

요청마다 쓰레드를 생성

장점

  • 동시요청 처리가능
  • 리소스(cpu, 메모리)가 허용할 때 까지 처리가능
  • 하나의 쓰레드가 지연되어도 , 나머지 쓰레드는 정상 동작

단점

  • 쓰레드 => 생성비용이 매우 비싸다
  • 쓰레드는 컨텍스트 스위칭 비용이 발생
  • 쓰레드 생성에 제한이 없다

컨텍스트 스위칭이란?

쓰레드 풀

요청마다 쓰레드 생성의 단점을 보완

● 특징

  • 필요한 쓰레드를 쓰레드 풀에 보관/관리
  • 쓰레드 풀에 생성가능한 쓰레드의 최대치를 관리 , 톰캣은 최대 200개 기본 설정(변경가능)
  • 쓰레드 필요시 , 이미 생성되어있는 쓰레드를 풀에서 꺼내서 사용

실무팁

was의 주요 튜닝 포인트 -> 최대 쓰레드 수

이 값이 너무 낮다면 - 동시요청이 많을시 서버 리소스는 여유롭지만 요청처리에 걸리는 시간이 많다

=> 리소스낭비가 심하다