1 Star 0 Fork 0

huyi / TechCPP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
五种IO模式.md 1.47 KB
一键复制 编辑 原始数据 按行查看 历史
葛昆仑 提交于 2023-11-19 19:47 . update: 2 articles
  1. 阻塞I/O: 这是最常见的I/O模型。在此模式中,当应用程序执行I/O操作时,如果数据还没有准备好,应用程序就会被阻塞(挂起),直到数据准备好为止。这期间,应用程序不能做其他事情。
  2. 非阻塞I/O):在此模式中,如果I/O操作的数据还没有准备好,操作会立即返回一个错误,而不是阻塞应用程序。应用程序可以继续执行其他操作,也可以反复尝试该I/O操作。
  3. I/O多路复用:也常称为事件驱动I/O。在此模式中,应用程序可以同时监控多个I/O描述符(比如,socket),当任何一个I/O描述符准备好数据时,应用程序就可以对其进行处理。这可以在一个单独的进程或线程中同时处理多个I/O操作,并且不需要阻塞或轮询。select、poll、epoll都是这种模型的实现。
  4. 信号驱动):在此模型中,应用程序可以向操作系统注册一个信号处理函数,当数据准备好时,操作系统会发送一个信号,应用程序可以在接收到信号时读取数据。这种模式避免了阻塞和轮询,但是编程复杂性较高。
  5. 异步I/O):在此模型中,应用程序发起I/O操作后,可以立即开始做其他事情,当数据准备好时,操作系统会将数据复制到应用程序的缓冲区,并通知应用程序。这种模型的优点是应用程序不需要等待I/O操作的完成,缺点是编程复杂性较高。
1
https://gitee.com/hylhm/TechCPP.git
git@gitee.com:hylhm/TechCPP.git
hylhm
TechCPP
TechCPP
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891