并发处理,对于各种io模型还是需要掌握的。
建议直接看最后面的链接,图文并茂理解更佳。
前提
io其实就是输入输出. 就是平时的文件读取,或者是网络爬虫抓取页面(socket io).
举例读取文件:将文件从磁盘读取到内存中,然后再从内存中读取到用户空间中
以钓鱼为例,拆分为抛竿,鱼咬钩,拉起三个操作
阻塞io
- 抛竿之后等着鱼咬钩然后再拉起
非阻塞io
- 抛竿之后,边玩手机边看鱼咬钩,然后再拉起
I/O复用
- 一次性抛多个鱼竿,挨个检查各个鱼竿有没有咬钩,咬钩了就拉起
信号驱动IO
- 鱼竿上面有个报警器,抛竿之后,一直玩手机,直到鱼咬钩触发了报警,然后再拉起
异步IO
- 抛竿之后,干其他的,鱼咬钩之后自动拉起,然后再通知你