帮助理解IO模型

帮助理解IO模型,io,nonblocking,Io,Nonblocking,考虑一下这个矩阵: 我已经思考了一段时间,对于每种IO模型,什么是一个好的示例 到目前为止,我得到的是: 同步阻塞:例如,在执行read()系统调用时阻塞的单线程应用程序 同步非阻塞(Synchronous Non Blocking):同一个应用程序,但只使用一个线程,使用一个线程池和多个线程,这些线程在主线程不阻塞的情况下处理阻塞IO操作 异步阻塞:一种应用程序,它使用Blocking poll()调用来管理severel文件描述符,如套接字。(libevent也是异步阻塞还是异步非阻塞?

考虑一下这个矩阵:

我已经思考了一段时间,对于每种IO模型,什么是一个好的示例

到目前为止,我得到的是:

  • 同步阻塞:例如,在执行read()系统调用时阻塞的单线程应用程序
  • 同步非阻塞(Synchronous Non Blocking):同一个应用程序,但只使用一个线程,使用一个线程池和多个线程,这些线程在主线程不阻塞的情况下处理阻塞IO操作
  • 异步阻塞:一种应用程序,它使用Blocking poll()调用来管理severel文件描述符,如套接字。(libevent也是异步阻塞还是异步非阻塞?那么ePoll()呢?)
  • 异步非阻塞:
我想知道,在你们的帮助下,我的想法是否正确,你们是否可以帮助我理解每一个模型

谢谢


异步

同步阻塞:您走到咖啡壶旁,点击brew。咖啡煮好之前不准离开

同步非阻塞:你正在看报纸,想要喝咖啡,你告诉你的朋友去煮一壶咖啡。他这样做了,必须等到它完成离开锅


异步阻塞:你正在看报纸,想要更多的咖啡。你告诉你的朋友去煮一壶咖啡,煮好后给你拿一杯咖啡。

同步阻塞:你去煮一壶咖啡,然后开始冲泡。咖啡煮好之前不准离开

同步非阻塞:你正在看报纸,想要喝咖啡,你告诉你的朋友去煮一壶咖啡。他这样做了,必须等到它完成离开锅

异步阻塞:你正在看报纸,想要更多的咖啡。你告诉你的朋友煮一壶咖啡,煮好后给你端一杯咖啡