当前位置: 首页> 文旅> 艺术 > 辽宁建设工程信息网招标软件_传媒公司是干嘛的_聊城今日头条最新_sem和seo区别与联系

辽宁建设工程信息网招标软件_传媒公司是干嘛的_聊城今日头条最新_sem和seo区别与联系

时间:2025/8/2 8:26:17来源:https://blog.csdn.net/qq_43920838/article/details/143612429 浏览次数:0次
辽宁建设工程信息网招标软件_传媒公司是干嘛的_聊城今日头条最新_sem和seo区别与联系

目录

  • 阻塞与非阻塞、同步与异步
  • Linux上的五种IO模型
    • 阻塞blocking
    • 非阻塞non-blocking
    • io复用
    • 信号驱动
    • 异步(asynchronous)

阻塞与非阻塞、同步与异步

同步就是recv去读取数据,异步是内核把buf准备好了会发信号通知。
在处理IO的时候,阻塞与非阻塞都是同步IO,只有使用了特殊的API才是异步IO。
aio_read()、aio_write()
同步的话就是客户端主动一点去接收数据,异步的话就比较被动,等着对方通知你来接收数据。

Linux上的五种IO模型

阻塞blocking

调用某个函数,等待这个函数返回,期间什么也不做,不停地去检查这个函数有没有返回,必须等返回才能进行下一步动作。(文件描述符的属性)
比如read

非阻塞non-blocking

容易出现EAGAIN,就是时间还未发生,根据errno来决定。判断EAGAIN来反复调用read。这也是同步IO。用户自己去read。相比于阻塞,可以做一些其他的事情。

io复用

select/poll/epoll实现IO复用模型,等待文件描述符更新再去读取

信号驱动

IO事件就绪,进程收到SIGIO信号,然后处理IO事件。在通知SIGIO阶段是异步的,可以去做自己的事情。到第二个阶段,用read读数据时就是同步的。

异步(asynchronous)

就是读取都帮读取完了,不用read。直接通知客户端处理数据。
比较复杂,而且出错了难以找错误,所以项目中一般不用。复用比较多。

关键字:辽宁建设工程信息网招标软件_传媒公司是干嘛的_聊城今日头条最新_sem和seo区别与联系

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: