I/O模型简介
根据网络编程对I/O模型的分类,可以有一下五种I/O模型。
-
阻塞I/O模型
-
非阻塞I/O模型
-
I/O复用模型
-
信号驱动I/O模型
-
异步I/O模型
阻塞I/O模型:最常用的I/O模型,所有操作都是阻塞的,在数据包到达且被复制到应用进程的缓冲区或发生错误时才返回,在此期间一直等待,从调用到接收数据的整段过程都是阻塞的。
非阻塞I/O模型:如果没有数据返回,就会返回一个错误,然后客户端进行轮询不断地要求返回数据,知道数据返回。
I/O复用模型:调用之后,服务端提示客户端数据准备好了,客户端执行读取要求数据返回调用。与非阻塞的区别是,不轮询扫描了,等待知道服务端提示。
信号驱动I/O模型:建立一个信号源SIGO来等待数据准备好的提示,再进行数据的读取。
异步I/O:告知I/O操作,并在操作完成之后提示。
欢迎关注订阅微信公众号,程序员的压哨绝杀,一起分享生活工作中的见闻趣事。