🖊️
Javascript-Advanced
  • Javascript 고급
  • 1) Closure
    • Closure
    • Memory Leak
  • 2) Arrow Function
    • Class To Function ( babel )
    • Normal function vs Arrow Function
    • Class에서 사용하지마!!!
    • 그 외
  • 3) Hidden Class
    • Prototype Chainning
    • Hidden Class
    • Inline Cache
  • 4) setTimeout
    • setTimeout
  • 5) Nodejs
    • Execution-context
    • 내부 동작 원리
    • Crypto
  • 6) Thinking
    • 요청이 무한대로 들어오면 어떻게 될까?
Powered by GitBook
On this page
  1. 5) Nodejs

내부 동작 원리

PreviousExecution-contextNextCrypto

Last updated 4 years ago

Was this helpful?

CtrlK

Was this helpful?

  1. V8에는 Event loop가 없다.

    1. nodeJs나 브라우져에서 관리한다.

  2. Event Loop는 여러개의 Queue로 이루어져있다.

    1. Timer (setTimeOut, setInterval )

    2. I/O callback

    3. idle ( 매 Tick 마다 실행 )

    4. poll ( 새로운 커넥션, 데이터 등)

    5. check ( setImmediate )

    6. close ( socket)

setTimeout(() => {
    console.log('setTimeout')
}, 0);
setImmediate(() =>{
    console.log('setImmediate')
})
setTimeout(() =>

1번과 2번 어떤 것이 맞을 거 같은가???

정답은 둘다이다. EventLoop의 타이밍에 맞게 출력된다.

  • EventLoop가i/O callback Queeue 전에 있으면 setTimeout이 먼저 실행되고, i/O callback Queeue 을 막 지난 상태면, Check Queue가 실행되기에 setImmediate가 먼저 실행된다.

https://evan-moon.github.io/2019/08/01/nodejs-event-loop-workflow/

{
console.log('setTimeout')
}, 0);
// 1번
// setTimeout
// setImmediate
// setTimeout
// 2번
// setImmediate
// setTimeout
// setTimeout
nodejs의 내부 동작 원리 (libuv, 이벤트루프, 워커쓰레드, 비동기)TISTORY
Logo
[node js] node.js 동작 원리, node.js 구조 및 시스템, event loop 구조TISTORY
Logo