: java에서 main()을 실행하면, main이라는 이름을 가진 쓰레드가 실행되면서, main()안에 적혀있는 코드문을 한 줄 한 줄 실행함
요청
이 들어오면 쓰레드에게 할당
-> 해당 쓰레드는servlet
을 호출해 코드를 한 줄 한 줄 실행
-> 결과를 응답한 뒤에는 해당 쓰레드는 휴식
1번째 요청인
요청1
이 들어오면 쓰레드에게 할당
-> 해당 쓰레드는요청1
을 처리하기 위해서servlet
을 호출해 처리중
-> 이렇게요청1
처리가 지연된 상태에서요청2
이 들어옴
-> 이렇게 되면요청2
는요청1
을 처리하는 쓰레드에게 할당되기를 기다려야함
=>요청1
도요청2
도 처리가 안되는 문제가 발생
1번째 요청인
요청1
이 들어오면 쓰레드에게 할당
-> 해당 쓰레드는요청1
을 처리하기 위해서servlet
을 호출해 처리중
-> 이렇게요청1
처리가 지연된 상태에서요청2
이 들어옴
->요청2
를 처리하기 위한 신규 쓰레드 생성
=>요청1
이 처리가 지연되어도요청2
를 처리하는데에는 문제가 없음
미리 쓰레드를 만들어놓고
쓰레드 풀
이라는 곳에 저장해놓음
->요청
이 들어오면 들어올 때마다쓰레드 풀
에서 쓰레드를 꺼내서 할당
-> 요청처리가 끝나면 쓰레드를 삭제 하는 것이 아니라,쓰레드 풀
에 다시 넣음
-> 만약 미리 만들어놓은 쓰레드 개수를 초과하는요청
이 동시에 들어오면 해당 요청은거절
or대기처리
낮게
하면, 클라이언트 금방 응답지연높게
하면, 동시 요청이 많을 때 CPU, 메모리 임계점 초과로 서버 다운