常见的IO有以下几种:

磁盘io、网络io、标准输入输出

 IO阻塞:例如在socket中,接收内核缓冲区内没有数据时,read将会处于阻塞状态,阻塞的程序将会被挂起。

 第一种非阻塞io:不断轮询方式来判断内核缓冲区是否有数据。

 

 第二种非阻塞io:当内核缓冲区存在数据时才会通知应用进程。

 

 在下图中为客户端的程序。从标准输入读上数据,通过write将数据从网卡发送到服务器接收,夫区其发来的数据通过网卡传递到接收缓冲区,客户端来读取数据。fgets和read函数默认状态下都为阻塞状态,因此当fgets处于阻塞状态时,即使read对应的接收缓冲区有数据时,也不会读到。

 IO复用将标准输入、输出、套接字等都看作IO的一路,无论哪一路有事件发生时都会通知应用程序取处理相应的事件。

 IO的事件有以下几种:

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部