io模型

并发处理,对于各种io模型还是需要掌握的。

建议直接看最后面的链接,图文并茂理解更佳。

前提

io其实就是输入输出. 就是平时的文件读取,或者是网络爬虫抓取页面(socket io).

举例读取文件:将文件从磁盘读取到内存中,然后再从内存中读取到用户空间中

以钓鱼为例,拆分为抛竿,鱼咬钩,拉起三个操作

阻塞io

  • 抛竿之后等着鱼咬钩然后再拉起

非阻塞io

  • 抛竿之后,边玩手机边看鱼咬钩,然后再拉起

I/O复用

  • 一次性抛多个鱼竿,挨个检查各个鱼竿有没有咬钩,咬钩了就拉起

信号驱动IO

  • 鱼竿上面有个报警器,抛竿之后,一直玩手机,直到鱼咬钩触发了报警,然后再拉起

异步IO

  • 抛竿之后,干其他的,鱼咬钩之后自动拉起,然后再通知你

参考 漫话编程