• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

이벤트루프와 싱글 스레드 방식에 대한 질문입니다.

22.09.15 22:01 작성 조회수 84

0

스프링에서는 요청이오면 스레드를 하나 더 만들어 처리를 하고, 노드는 싱글 스레드 기반으로 콜스택에서 하나씩 처리를 하지만 IO 요청과 같은 것을 libuv에 있는 스레드 풀로 위임해서 처리한다고 알고 있습니다.

 

그래서 동시에 여러 요청이 오더라도 백그라운드에서 처리가 되는 것으로 알고 있는데, 그렇다면 libuv에 있는 스레드의 총 개수가 5개고 5초가 걸리는 IO 요청이 6개가 들어왔을 때 5개의 스레드가 5초간 요청을 처리하고 남은 1개의 요청은 5초가 지나고 처리되는 게 맞을까요?

 

그렇다면 1개의 요청이 콜 스택에 5초간 남아있다가 백그라운드로 넘어가므로 메인 스레드는 5초간 아무런 요청도 처리할 수 없는걸까요?

답변 1

답변을 작성해보세요.

0

자바스크립트로 5초가 걸리는 요청이라면 6번째 요청은 25초 후에 실행됩니다. 요청 하나당 5초씩 잡아먹으니까요. 노드에서 핵심은 자바스크립트로 처리하는데 걸리는 시간이 적은 요청만 받아야합니다.