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就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!


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

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