开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情
✔个人主页:Mr.Darcy8的掘金主页
🎉欢迎关注👀点赞👍收藏⭐留言📝以及交流人生哲理🎈学习心得🎁
什么是IO编程
没那么玄乎。一句话:
有Input/Output的程序设计
顾名思义就是设计“需要你输入数据,让计算机处理之后给你输出数据”的程序
如果这个要详细讲的话可以扯到很多东西。凡是涉及数据交换和处理的地方都会有IO编程。比如网页的浏览(用户登录、验证,信息的浏览和交互……),亦或者是我之前更新了很长时间的数据库……
要牵扯历史和现实应用示例就不是一个技术文章的范畴了,我们可以之后有机会再慢慢了解。
Stream 流
IO编程中,流就是数据的交互过程了。input stream可以理解成从外部流入的数据,来源可以有很多,硬盘、网络等都可以。output stream就是数据流出了,是流入的逆向。
同步IO和异步IO
有一个事实是,我们现在的cpu算力其实还是蛮强的——至少一般要强于我们其他的配件——cpu处理完毕数据之后,把数据通过stream流向其他元件,但是其他元件处理速度往往没有cpu处理得快,
这个时候怎么办呢?
cpu有2种选择,一种是等待其他元件接收并处理完他们负责的那部分,再传回来继续完成cpu的工作。这个时候我们的程序就是同步IO
另一种自然是cpu在需要等待的时间里,去做点别的了,不把时间浪费——毕竟cpu不是人,“休息”其实没有太大的意义(只要散热到位不会烧毁就ok)。这种程序设计就是异步IO
显然,异步IO难设计但是效率高。同步IO开发成本低。
新人上路,欢迎互相帮扶~Mr_darcy8的掘金主页
可以的话给咱点个赞呗💖