现在我做了很多关于并发和并行的研究。你能告诉我我是否理解正确(在操作系统级别):
阻塞 io:
当我明确等待连接时(即在 Ruby 中:)
conn = socket.accept
所以我的线程被阻塞,直到我得到一些东西到套接字,对吧?
(而且我知道我在某个循环中汇集套接字以接受数据,对吗?)
非阻塞:
我有线程不时询问所有已注册的 fd(文件描述符)是否有我需要的东西。但是也有“不要打电话给我们,我们会打电话给你”的规则,但它是如何在 ios 级别上工作的(在像 eventmachine 或 node 这样的库上,它是通过回调完成的(?))
PS。我欢迎阅读和演示,例如: http: //www.paperplanes.de/2011/4/25/eventmachine-how-does-it-work.html http://www.kegel.com/c10k.html