Tagme
148
2020-11-24 01:47:05 작성 2020-11-24 01:47:32 수정됨
2
161

tomcat에서 spring Controller로 호출하는 과정이 궁굼합니다.


스프링에서 특정 컨트롤러를 실행하면 다음처럼 Thread가 실행되는걸 알수있는데,


1.톰캣에서 어떤방식으로 thread를 실행하는지 궁굼합니다.


2. debug 목록에서 Thread[xxxx] (Running)이라는 스레드를 여러개 볼 수있는데

쓰레드 자체가 계속 실행되고 있다는 개념인가요??이게잘 이해가안됩니다. 대기상태인가요??

쓰레드가 대기라고하면,,슬립상태??가아니고서 대기할수가있는지 궁굼해요ㅠ 

Running상태라면, 아무런 호출도 없는데 어떤거에 대한 Running인지 궁굼합니다.


자세히 설명이 힘드시면 찾아볼 자료라도 알려주실수 있나요 ㅠㅠ


넘궁굼하네여,,




1
  • 답변 2

  • devcrema
    1k
    2020-11-24 09:09:09

    threadpool 아닐까요??

    보통 쓰레드풀을 쓸때에 쓰레드를 매번 만들고 지워버리면 자원낭비니까 만들어두고 일정 시간 살려두고 다음 요청이 들어올때 재활용하기도 합니다.

  • basscraft
    3k
    2020-11-24 10:50:55

    정확한 답이 아닐 수도 있습니다만...


    고전적인 네트워크 프로그램에서는 특정 포트를 계속 리슨 하고 있다가

    해당 포트로 request가 들어오면 쓰레드(C의경우 pork)를 생성하여 처리 한 후 종료

    메인 인스턴스는 계속 같은 포트를 리슨하는 형태로 구현됩니다.


    톰켓의 경우 어떻게 구현되어 있는지 소스를 분석해 보지 않았지만

    비슷한 방식으로 되어 있을 거라고 추측됩니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.