对于为什么线程在io操作时需要阻塞的一些理解

为什么线程在io操作时需要阻塞呢,根本原因应该是CPU的运行速度要远超过一个io的速度,CPU不可能去等待一个要很久才能完成的io操作,所以就是当进行io操作时线程需要进入一个阻塞状态(当然,异步io的话是线程也不去等待io了,当数据准备好的时候来通知线程就好了,此处讨论阻塞io),当数据准备好了之后,才会再次进入一个CPU运行队列执行接下来的操作。
为什么io的操作CPU只需要下一个指令,而不是要全程等着呢(这是我的一些理解,仅用于自己笔记,可能会有错误,也希望大家指正)我的理解是CPU就像是我们的大脑,假如我们现在想要去干一个体力活,但是大脑通知你说你现在太饿了,要吃饱了才可以干(我们可以将吃饭理解位io数据),那么我们就要先去吃饭,那么干活的线程就阻塞了,但是在我们吃饭的时候大脑也不能什么都不想不干吧~~,比如我们可以想一下其他的事儿(这就像是CPU在做其他的事情)这是一些个人理解

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值