node.js 事件循环 异步IO 和 非IO异步

前些天略研究了一下node.js的异步原理,才对node 的处理异步机制有些了解,于是想着写篇博文,一是可以帮助正在学习的猿们,二是也可以巩固自己,如果本文有什么错误的地方,还请各位指出,我会加以改正。

windows 的IOCP

首先我得先简单的说一下windows下处理高并发的异步模型,它是一种通信模型,用来解决服务器高并发的一种技术,它就是IOCP(I/O Completion Port)IO完成端口。

node异步IO

在node的底层libuv库里实现了IOCP这个异步模型,当我们在windows下运行Node 的程序,对于异步的请求处理,内部会用线程池来实现,这个线程池会被windows 管理,而这种实现方式就是IOCP的实现方式。

说到异步IO我们得先看一下是事件循环,它是整个异步实现的核心,它不断的从观察者把事件取出,分离回调来执行。
这里写图片描述

整个绿色的区域就是一个事件循环,它的作用就在于:
①取出事件
②执行相关联的回调

如果我们要执行一次异步IO,那它的整个流程是怎样的呢,比如我要执行一次读取文件的操作,这里我用promise来实现。

const fs = require("fs");
let readFile = path => {
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值