이벤트 루프, 태스크 큐

Minhyeok Kim·2022년 8월 30일
0

개념

목록 보기
5/13

express 를 공부하면서 이벤트기반이다, 논 블로킹 I/O다, 싱글 쓰레드다~ 뭔가 엄청 많은 개념들이 들려왔다. 하나씩 잡아보자.

바로 예제로,

console.log("Welcome to Node Tutorial");

console.log("first");

setTimeout(() => {
  console.log("seconde");
}, 3000);

console.log("third");

그냥 콘솔찍은건 쭉 나온거고, setTimeout 으로 넘긴건 3초뒤에 나온다.
그럼, 3000ms 인 대기시간을 0초로 하면 ?


console.log("Welcome to Node Tutorial");

console.log("first");

setTimeout(() => {
  console.log("seconde, 0 sec");
}, 0);

console.log("third");

여전히 맨 마지막에 찍히는걸 확인했다. 이제 그냥 찍힌 콘솔과 setTimeout, 즉 비동기 함수로 찍힌 콘솔은 뭔가 다르다는걸 볼 수 있다.


// 헐 .. 오타 있는줄 몰랐음 ㅋ seconde -> second

console.log("Welcome to Node Tutorial");

console.log("first");

setTimeout(() => {
  console.log("second, 0 sec");
}, 0);
setTimeout(() => {
  console.log("second, 0 sec");
}, 0);
setTimeout(() => {
  console.log("second, 0 sec");
}, 0);
setTimeout(() => {
  console.log("second, 0 sec");
}, 0);

console.log("third");

여러개를 넣어봐도 결과는 똑같다. ㄴ

0개의 댓글