阻塞IO是指在进行读写操作时,如果数据没有准备好或者数据传输过程中出现问题,程序会被挂起,直到数据准备好或者问题解决。这种IO模型常用于文件传输、网络通信等场景。阻塞IO的特点是简单易用,但是由于程序被挂起,会导致CPU资源浪费和响应时间延迟。因此,在实际应用中需要根据具体情况选择合适的IO模型。
返回成功指示
等待数据
处理数据报
将数据从内核空间拷贝到用户空间
拷贝数据
进程阻塞与recvfrom的调用
数据报准备好
拷贝完成
无数据报准备好
Kernel
系统调用
Application
recvfrom