Node.js를 높은 동시 원리를 지원

노드가 단일 스레드입니다, 높은 동시성은 왜 그것을 지원?

  • 각각은 Node.js를 실행 스택 (실행 컨텍스트 스택)를 형성하는 프로그램 코드를 실행하는 하나의 메인 쓰레드를 처리한다.
  • 메인 쓰레드 이외의 또한 "이벤트 큐"(이벤트 대기열)을 유지한다. 사용자가 네트워크 나 다른 비동기 작업의 도착을 요청하면, 노드는 이벤트 큐 사이에 넣어 것이며,이 코드는 차단되지 않습니다, 즉시 실행되지 않습니다 이번에는 메인 스레드 코드 실행까지 내려 가서 계속 완료했다.
  • 메인 스레드 코드 실행의 완료가 완료되면 다음 이벤트 루프 메커니즘, 첫 번째 이벤트 밖으로 이벤트 큐의 시작 부분에 시작입니다 이벤트 루프에 의해, 두 번째를 제거 계속 다음,이 이벤트를 실행하는 스레드 풀에서 스레드를 할당 이벤트는 다음 넷째, 다음 제를 실행하는 스레드 풀의 스레드를 할당한다. 메인 스레드는 EventLoop 과정을 지불하기 위해 메인 스레드를 통보합니다 이벤트 큐에 추가 된 새 이벤트가 다음 때마다, 모든 이벤트의 구현을 통해 이벤트 큐까지 이벤트 실행되지 않은 이벤트 큐를 확인하기 위해 계속합니다. 이벤트가 종료되면 스레드 풀 스레드에 반환 된 메인 쓰레드, 메인 스레드 콜백을 통지합니다.
  • 메인 스레드는 위의 세 번째 단계를 반복합니다.

nodejs 단일 스레드가 높은 동시에, 그 이벤트 루프 메커니즘 libuv 층을 처리 할 수 있고, 기본 스레드 풀을 달성하는 이유 때문에.
이벤트 루프 구조 및 노드와 유사한 브라우저의 새 버전에서

게시 58 개 원래 기사 · 원 찬양 59 ·은 90000 +를 볼

추천

출처blog.csdn.net/z2516305651/article/details/104125161