Node.js에 관해 말하면, 어지러운 고유명사를 많이 들어보셨을 것입니다.
비동기에 대해 주로 이벤트 루프 및 **비차단 I/O, **공식적으로 이 두 가지 점이 Node.js 고성능.
그래서 Node.js의 비동기 메커니즘과 사용법을 이해하는 것이 중요합니다
Blocking I/O 와 Non-Blocking I/O의 차이점은 시스템이 입력을 받고 출력하는 데 걸리는 시간과 다른 입력을 받을 수 있는지 여부에 있습니다.
For 고객/주문직원
식당 이모와 웨이터를 소프트웨어 시스템과 비교하세요
Input = 음식 주문
Output = 음식 제공
예: 포럼의 개발자 질문이 제기되었습니다: "이 Node.js 문제를 해결하는 방법은 무엇입니까? 온라인에서 기다리고 있습니다. 긴급합니다."
I/O를 차단하는 상황은-> 계속 다른 사람이 대답하기를 기다리고, 다른 사람이 대답하면 또 하려고 합니다. 논블럭킹 I/O의 상황은-> 다른 일을 하러 갔다가 잠시 후 답을 보러 옵니다const glob = require("glob"); var result = null; console.time("glob"); // 获取目下的文件和文件名 result = glob.sync(__dirname + "/**/*"); console.timeEnd("glob"); console.log(result);
이 걸리는 것을 알 수 있습니다30 毫秒的等待时间
blocking I/O에는 대기 시간이 있다는 결론을 내릴 수 있습니다. 실행 중에는 다른 작업을 수행할 수 없습니다.
const glob = require("glob"); var result = null; console.time("glob"); // 获取目下的文件和文件名 glob(__dirname + "/**/*", function (err, res) { result = res; console.log("got result"); }); console.timeEnd("glob"); console.log(1 + 1);
glob: 3.198ms 2 got resultFrom 위의 코드를 사용하면 비차단 I/O가 대기 시간을 줄이고 실행 프로세스 중에 다른 작업도 수행할 수 있다는 결론을 내릴 수 있습니다
더 많은 프로그래밍 관련 지식을 보려면
프로그래밍 소개위 내용은 Node.js의 비차단 I/O 자세히 살펴보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!