[Node.js] blocking, non-blocking

김민재·2024년 3월 26일
0

Node.js

목록 보기
7/36

Blocking이란?

  • Node.js 프로세스에서 추가 자바스크립트 실행이 자바스크립트가 아닌 작업이 완료될 때까지 기다려야하는 경우, Blocking 작업이 발생하는 동안 이벤트 루프가 자바스크립트를 계속 실행할 수 없기 때문에 발생하는 것

Blocking Function

  • JSON.stringfy 함수와 window.alert은 Blocking 함수이다. 해당 작업을 마쳐야 다음 작업을 수행할 수 있다.

Node.js 표준 라이브러리의 모든 I/O 메서드는 non-blocking 및 callback 함수를 허용하는 비동기 버전을 제공한다. 일부 메서드에는 이름이 Sync로 끝나는 blocking 상태도 있다.

ex)

const fs = require('fs);
const data = fs.readFileSync('/file.md');
console.log(data);
next();
  • 이렇게 작성을 하면 readFileSync가 완료될 때까지 밑에는 읽지 않고 blocking 상태이다.

blocking 코드와 non-blocking 코드를 함께 쓸 때 발생할 수 있는 문제

  • 의도: 1. 파일 읽기 2. 파일 지우기
  • 실제: 2. 파일 지우기 1. 파일 읽기

non-blocking I/O란?

  • 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행
profile
개발 경험치 쌓는 곳

0개의 댓글