帮助理解IO模型

时间:2011-03-16 21:39:38

标签: io nonblocking

考虑这个矩阵:

enter image description here

我一直在思考每个IO模型可能是一个很好的例子。

到目前为止我得到了什么:

  • 同步阻止:例如,在执行read()系统调用时阻塞的单线程应用程序
  • 同步非阻塞:相同的应用程序,而只是使用一个线程使用一个Threadpool,其中有多个线程处理阻塞IO操作,而主线程没有阻塞。
  • Asynchonous Blocking:使用阻塞轮询的应用程序() - 调用管理像套接字这样的severel文件描述符。 (libevent也是异步阻塞或异步非阻塞吗?那么ePoll()呢?)
  • 异步非阻塞:???

如果我的想法是对的,如果你能帮我理解每个模特,我想在你们的帮助下知道。

谢谢!

异步

1 个答案:

答案 0 :(得分:1)

同步阻挡:你去咖啡壶喝啤酒。在咖啡结束酿造之前,您不得离开。

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

异步阻止:您正在阅读报纸并想要更多咖啡。你告诉你的朋友去煮一壶,并在完成后给你带来一杯咖啡。