blocking
-
Nodejs Blocking/Non-Blocking,개발 2023. 1. 26. 17:33
노드제이에스에서 Blocking은 자바스크립트의 실행을 위해 자바스크립트 작업이 아닌(non-JavaScript operation)의 작업이 끝날 때 까지 기다려야 하는 것을 말한다. 주로 I/O 작업의 실행을 위해 기다릴 때 Blocking 이 생긴다. libuv를 사용하는 노드 제이에스 동기 메서드가 대표적인 블로킹 작업이다. 표준 라이브러리의 I/O에서는 대체로 Blocking 메서드와 Non-Blocking 메서드를 모두 제공한다. const fs = require('fs'); const data = fs.readFileSync('/file.md'); // 파일을 읽을 때까지 여기서 블로킹됩니다. console.log(data); moreWork(); // console.log 이후 실행될 것입니..
-
Blocking/Non-Blocking Sync/Async개발/컴퓨터사이언스 2023. 1. 26. 17:28
Blocking/Non-Blocking Blocking, Non-Blocking은 제어권을 처리하는 방법론이다. Blocking은 현재의 작업이 모두 끝난후에 다음 작업에게 제어권을 넘겨준다. 예를 들어 Blocking 방식으로 CPU가 I/O 작업을 처리한다면 CPU는 I/O 작업이 완료 될 때까지 다른 업무를 하지 않는다. Non Blocking은 이와 반대다. 현재 작업이 모두 끝나지 않더라도 다른 작업에게 제어권을 건네줄 수 있다. CPU가 I/O 작업을 모두 처리하지 않더라도 다른 작업에게 제어권을 넘겨준다면 Non-Blocking이다. Sync/Async 작업의 결과값을 신경 쓰느냐 쓰지 않느냐와 관련 있다. Sync는 호출된 함수의 결과를 호출한 함수가 신경 쓴다. 함수의 리턴 값이 필요한 ..