IO模型与吃饭的那些事

瞎写的,大家看了图个乐,说得不对欢迎指正。

阻塞IO

万香楼开张了,今天是第一天接待人,张三是第一个客人,他看了眼菜单,对recvfrom说道:“给我来碗臊子面吧,多放臊子。”,recvfrom客气道:“好,稍等哈,我立马给你做”。这一做就是20分钟过去了,后面排队的后面李四、王五、马六不愿意了。李四不耐烦的道:“老板你能不能快点的啊,这这么搞等吃到饭都要晕倒了啊!”

非阻塞IO

recvfrom对李四客气道:“不好意思哈,我这臊子准备得有点少,我赔偿你个EWOULDBLOCK吧,你先换一家哈。”,李四想了下继续等下去也没啥意义,便转身走了。

IO复用模型

王五和马六觉得都排了这么久了,想了下,走了也不是办法,下家是不是也要这样排队等都不知道呢,正好这时候涌入了一大批人。王五想了想道:“老板,这样吧,我这正好有两套号码牌fd,你先拿来用一下,每个人点菜之后你给发一张,你做好了之后,你放到指定号码牌上,然后让你那个8岁娃select/poll|epoll看着点,如果做好了就让你娃根据号码牌说一声,然后我们自己来取就好了。”老板露出感激的眼神,对王五连连道谢。于是大家有序点餐,老板的大骨头饭和卤肉饭倒是管够,好几个人点到了就直接拿到手就去坐着吃了,还有好几个人点了些京酱肉丝、臊子面啥的都还没准备好,便坐到旁边安静的刷着手机等待了起来。

信号驱动IO模型

王五和马六坐了好一会,马六看到老板小孩看那些号码牌,跑来跑去的,老汗都冒出来了,于是捅了捅旁边的王五:“你那个号码牌都给老板了,其实没必要看着吧,你让老板对应号的菜做好了叫一声SIGIO指定的号不就行了么?”

王五一拍大腿:“诶,是这个道理,我去说一声哈。”

异步IO模型

正好这时,老板媳妇来了,老板觉得很多人都等了挺久了,于是对他媳妇说:“我这里的菜做好后,你等会按照这个号码牌,找到对应号码的客人,把饭端过去给他们吧,这样也不用客人老是跑来跑去的。他们只要点好菜去坐着就行了。”


Kumfo 的杂货铺
做一些经验总结和一些学习心得分享,主要围绕PHP。 现在正在学习机器学习,会增加一些机器学习的思考分享。
avatar头饰
kumfo
SegmentFault 后端工程师

程序生存法则:

6.5k 声望
4.1k 粉丝
0 条评论
推荐阅读
Elasticsearch 按照标签匹配个数优先排序查询
首先最外层的数组就是我们通常写的query语句,放在body中进行请求的,主要看query里面的结构,这种需要自定义脚本处理评分的,query中只放了一个script_score:

kumfo2阅读 689

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy45阅读 5.8k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木63阅读 6k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs39阅读 6.2k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木41阅读 7.2k评论 6

CSS 绘制一只思否猫
欢迎关注我的公众号:前端侦探练习 CSS 有一个比较有趣的方式,就是发挥想象,绘制各式各样的图案,比如来绘制一只思否猫?思否猫,SegmentFault 思否的吉祥物,是一只独一无二、特立独行、热爱自由的(>^ω^&lt...

XboxYan42阅读 2.8k评论 14

封面图
还在用 JS 做节流吗?CSS 也可以防止按钮重复点击
举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如只允许每300ms提交一次,这时候我想大部分同学都会到网上直接拷贝一段throttle函数,或者直接引用lodash工具库

XboxYan34阅读 2.3k评论 2

封面图
avatar头饰
kumfo
SegmentFault 后端工程师

程序生存法则:

6.5k 声望
4.1k 粉丝
宣传栏