五分钟带你认识 Linux IO 模型

Linux IO 模型

在 Linux 操作系统中,共有五种 IO 模型:

  • 阻塞 IO 模型
  • 非阻塞 IO 模型
  • 信号驱动 IO 模型
  • IO 复用模型
  • 异步 IO 模型

下面以烧水这个经典例子对这五种模型进行介绍:

 早上,你用灶台进行烧水时,由于你第一次烧水不知道水什么时候会烧开,所以你就一直站在旁边盯着水壶,等着水烧开。这就是 阻塞 IO 模型

 等了一会之后你又觉得太无聊了,就拿出手机,但你又怕水开了溢出来,这时机智的你想了一个办法,每看手机 1 分钟就抬头看一下水开了没。这就是 非阻塞 IO 模型

 中午,你第二次烧水的时候,你觉得之前的烧水方式太累了,又看手机又看水的,这时你突然想起家里有一个电器:煮水壶,这时你立马往煮水壶里倒水,开关一按,完事,现在就只需要等煮水壶的警报声响起就 ok 了,而这段时间你又可以开开心心地玩手机了,再也不用分心,哈哈。这就是 信号驱动 IO 模型

 晚上,刚看完《Linux 从门到精通》的你觉得肚子贼饿,想吃碗泡面、喝杯奶茶,再用热水泡泡脚,这时你发现,一个煮水壶不够用,又去拿了两个煮水壶来煮水,但你这时又饿得啥事都不想干了,一心只想吃泡面,就一直盯着这三个煮水壶,看看哪一个先煮好水,好让你先嗦上几口泡面。这就是 IO 复用模型

 刚吃着泡面看着电视,又到了电视广告时候,你还在烦恼煮完水后还得手动加水泡面吗,全自动煮水泡面机,从煮水到泡面一步到位,泡面泡完之后定时提醒,帮您解决全部烦恼,这时你恍然大悟,对哦,我之前煮完水之后,每次都手动泡面,何不买一台这个全自动煮水泡面机呢,嘻嘻。这就是 异步 IO 模型,也是唯一一个 异步IO 模型

在这里插入图片描述

部分材料来源:漫话:如何给女朋友解释什么是Linux的五种IO模型?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值