计算机网络(6) ——同步IO/异步IO专题


计算机网络(6) ——同步IO/异步IO专题


理解性记忆

计算机网络(6) ——同步IO/异步IO专题

1.同步IO

在一个线程中,一旦遇到IO操作,如读写文件、发送网络数据等,就需要等待IO操作完成,完成后才能继续进行下一步操作。
这种情况称为同步IO。

那么问题来了。
如果只有这一个线程,且它正在IO阻塞中ing,那么其他位置的代码就无法执行了。

所以我们首先的解决方案就是:引入多线程!让其他的线程去执行别处的代码。
但是如果线程创建的太多,单核CPU下切换频繁的话,会导致代码真正运行的时间变少,性能下降。

于是,异步IO出现了!

2.异步IO

先说一下同步非阻塞与异步非阻塞的微妙区别。
同步非阻塞每隔一段时间就会检查IO是否返回/就绪,就绪则去执行它,否则去干别的工作。
异步非阻塞:IO返回/就绪后会发出指令,cpu只需要等待指令即可(不用反复轮询查看,期间可以做别的工作),获得指令信号后再去处理就行。
#######################################
1 老张把水壶放到火上,立等水开。(同步阻塞)
2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)
3 老张把响水壶放到火上,立等水开。(异步阻塞) (水开之后,能大声发出嘀~~~~的噪音。),这样没有意义
4 老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。(异步非阻塞)
(异步一般配合非阻塞用 “嗯嗯对对~”)

异步IO,IO结束后会发出指令,在发出指令前,CPU可以执行别的工作,期间不用反复轮询查看,等收到IO指令后再来处理即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值