简介
- 同步调用、异步调用的说法,是对于获取数据的过程而言的。
- 例如发生read调用时,内核将数据从内核空间拷贝到应用程序空间。这个过程是在read函数中是
同步进行
的。如果内核实现的拷贝效率很差,read调用就会在这个同步过程中消耗比较长的时间。 - IO操作分两个阶段:
- 等待数据准备好 --读到内核缓存
- 将数据从内核读到用户空间 --读到进程空间
- 一般来说过程1花费的时间远远大于过程2:
BIO
:1上阻塞2上也阻塞的是同步阻塞IONIO
:1上非阻塞2阻塞的是同步非阻塞IO,Reactor就是这种模型AIO
:1上非阻塞2上非阻塞是异步非阻塞IO,Proactor模型就是这种模型
2024年3月29日...大约 4 分钟