Redian新闻
>
漫话 | 运维如何给女朋友解释 IO 中的阻塞、非阻塞、同步、异步?

漫话 | 运维如何给女朋友解释 IO 中的阻塞、非阻塞、同步、异步?

公众号新闻

来源:漫画编程

周末在家加班,正在疯狂的撸代码,女朋友很开心的跑过来,手里拿着他刚刚画好的一副漫画。

(PS:如果运维木有女朋友,首先假设有,先这样吧

我刚刚画了一个很好看的漫画,能不能帮我做个网站把它上传到网上啊?



做网站可难不倒我。漫画上传,你希望是同步的还是异步的啊?


啥同步异步的我不懂,同步吧。



哦,那是阻塞的还是非阻塞的呢?


额、阻塞吧。



恭喜你,选择了一种最慢的方式。


什么鬼嘛,你给我绕懵了,给我讲讲这都是啥意思。


同步、异步、阻塞、非阻塞都是和IO(输入输出)有关的概念。最简单的文件读取就是IO操作。而在文件读取这件事儿上,可以有多种方式。

又拽概念了,你先给我说说啥叫同步、啥叫异步。



好吧,你去给我烧点水,泡杯咖啡我慢慢给你讲。

什么是同步和异步


别急,听我慢慢和你说。

什么是阻塞和非阻塞



当然不是啦。

阻塞、非阻塞和同步、异步的区别


你可以简单的这么理解。


那我的网站我想选择异步非阻塞的形式。



其实阻塞、非阻塞和同步、异步之间的组合并不是全都有的。


那都有那些呢?


三种IO模型

以Java语言为例,Java一共提供了三种IO模型,分别是阻塞IO(BIO)、非阻塞IO(NIO)、异步IO(AIO)。

这里面的BIO和NIO都是同步的IO模型,即同步阻塞IO和同步非阻塞IO,异步IO指的是异步非阻塞IO。

  • BIO (Blocking I/O):同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。

  • NIO (New I/O):同时支持阻塞与非阻塞模式,但主要是使用同步非阻塞IO。

  • AIO (Asynchronous I/O):异步非阻塞I/O模型。

额、刚刚好像明白了,现在又不懂了。



那我再拿烧水的例子给你解释一遍。

  • BIO (Blocking I/O):有一排水壶在烧开水,BIO的工作模式就是,叫一个线程停留在一个水壶那,直到这个水壶烧开,才去处理下一个水壶。但是实际上线程在等待水壶烧开的时间段什么都没有做。

  • NIO (New I/O):NIO的做法是叫一个线程不断的轮询每个水壶的状态,看看是否有水壶的状态发生了改变,从而进行下一步的操作。

  • AIO ( Asynchronous I/O):为每个水壶上面装了一个开关,水烧开之后,水壶会自动通知我水烧开了。

奥,你就说烧水我就明白了。



嗯,这就是Java中的三种IO模型。


Java好厉害啊,自己都能实现这些IO组合。



也不是啦,Java中的IO还是借助操作系统的IO模型的,只不过是对操作系统IO模型的封装而已啦。


那你再给我讲讲操作系统的IO模型吧。


滴滴滴滴,这时候水壶响了,打断了女朋友的发问。女朋友去拿来烧好的热水,给我泡了一杯咖啡。

诺,给你咖啡,我选好了,你就用AIO给我实现个漫画上传的网站吧。我晚上就要用。


额…

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

刘遄老师QQ:5604241

Linux技术交流群:3762708

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
【春季自救指南】鼻塞、鼻子不通气...附美国鼻炎必备常用药列表!专家解释总流鼻涕竟然是因为这个原因?!洛杉矶街头, 遇到黑人流浪汉……“连心贷”来了,男女朋友可一起还房贷!如何界定男女朋友?分手了咋办?专家解读…拍2发4!用了两年的清洗液,血渍、异味轻松洗净!上个厕所都是香喷喷~用这4招 优雅的实现Spring Boot 异步线程间数据传递中美政党有何不同?新斯诺做了一个精妙的比较 | 围炉漫话网友解锁的新吃法,你能坚持到第几道菜像卢梭一样散步、像波伏瓦一样老去:14段火车旅行中的哲学时刻甲状腺手术,患者要求“只麻脖子以上”,是时候和大家解释解释什么叫“全麻”了第二次徒步圣路,750公里葡萄牙之路+英国之路:D24~乡间求助太牛了!35岁、非金融、有娃如何高效备考CFA?狐狸精少女一种异步延迟队列的实现方式2023年多伦多“回暖”了?资深网友解读背后的影响!如何在《模拟人生4》中找到男朋友或女朋友澳男买俩性爱娃娃享齐人之福!竟介绍“爱人”给妈妈和女朋友和平相处,还为其开ins账号,每天给娃娃洗澡、穿衣、拍照...别把冰箱用成“低温垃圾桶”!细菌多、异味大,让东西越放越坏第一次见女朋友的闺蜜,如何高情商相处?别只会尬笑了…爸爸头七,写写我心目中的爸爸如何成为好女朋友01月25号:不攻击别人的动机:“能解释为愚蠢,就不解释为恶意”SpringBoot 统一功能处理:用户登录权限校验-拦截器、异常处理、数据格式返回免疫接种信息互联互通、异地租房可提取公积金……长三角一体化示范区第三批12项公共服务跨省共享一次线上事故,我顿悟了异步的精髓编导思维如何高效进化?量化私募大扩张,如何提升市场定价效率?强化技术进步、保持策略容量...实现异步的方式,你知道几个?温哥华知名华裔歌唱家的孩子失踪! 朋友圈集体找人! 父: 他刚和女朋友吵架分手“萧亚轩的男朋友vs王思聪的女朋友?”哈哈哈被沙雕网友玩坏了...Flutter异步编程指南广场蚂蚁:实现异步的8种方式,你知道几个?消息链路拆分最佳实践:钉钉审批异步链路重构【总结】神吐槽:主播私信榜一大哥,要做他女朋友,内容太劲爆了!哈哈哈哈哈~跟男同事睡过后,他在朋友圈官宣了女朋友,今后我要和他怎么相处?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。