为什么反应堆模式(Twisted,Gevent,Node.js等)

时间:2016-06-05 01:07:22

标签: python node.js events asynchronous twisted

从阅读本文开始, http://www.artima.com/articles/io_design_patternsP.html

据我所知,proactor模式是完全异步的,而反应器模式则不是。

我所知道的所有流行的异步事件驱动的网络框架(Twisted,Gevent,Tornado,Asyncio和Node.js)都应用了反应堆设计模式。这是为什么? proactor模式不能提供更好的性能吗?

1 个答案:

答案 0 :(得分:3)

因为,正如您引用的这篇文章所指出的,Proactor模式需要内核级(内部)支持异步I / O,并非并非所有操作系统都在其面向用户的I / O层中本地提供。您提到的框架都是多平台工具包/模块,因此需要支持各种OS I / O架构。

无需提供特定于平台的"后端"对于每个操作系统的实现,这些框架选择"最低公分母"设计模式。 Reactor模式更加通用,因此可以在不需要不同后端的情况下本地实现。