Try Everything Different In My Life.

「📝总结」计算机世界的I/O

2020.04.19

IO是学习编程绕不过的话题,从学习JavaBIONIO,再到NginxRediskafka….IO一直是非常热门的话题

❓为什么他们那么快?

无论是C语言写的Redis还是Java写的kafka,我们经常看到的字眼是使用了非阻塞的IO模型。说明这是和语言无关的特性,值得去学习一下

📌 有几点共识写在前面

1.应用程序的IO都是操作系统去实现的,本质上就是使用OS的API来完成IO 2.Linux没有统一好异步非阻塞的IO模型

大纲

IO模型

在《UNIX网络编程•卷1:套接字联网API(第三版)》[1]中,UNIX网络模型如下

操作系统的IO系统调用

Java中BIO的执行细节

Java中NIO的执行细节

Redis的IO模型

Nginx的IO模型

参考

[1]UNIX网络编程•卷1:套接字联网API(第三版)

[2]Linux命令Doc-strace