几种IO模型的比较

几种IO模型比较

要说几种IO模型,需要先讨论一下事件分离器的两种模式
1. Reactor模式
由回调函数完成实际的IO读写,操作系统仅通知,不读取
2. Proactor模式
由操作系统代为进行IO读写,将读取后的结果托付给回调函数

  • AIO
    非阻塞,采用Proactor模型,Windows的IOCP、Linux的epoll
  • NIO
    非阻塞,采用Reactor模式
  • BIO
    阻塞IO

Nodejs为什么IO效率高呢?
1. AIO(目测用的最新的IO模型,没有证据,但至少是非阻塞IO)
2. 没有锁的状态,各种回调

私以为,Nodejs只适用于处理RestfulAPI等重IO轻逻辑的业务,原因如下:
1. 回调意味着逻辑处理的时间必然要少,不然会拖慢后面的所有任务。
2. 动态类型的语言,会引入很多低级的错误,比如跨文件变量名、方法名错误,WebStorm代码感知能力虽然不错,但是较耗资源,而且对于function中的入参无能为力。
3. 回调过多,引起捕获异常较为困难,会多出比较多的异常捕获代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值