Twisted介绍

Twisted诞生于2000年初,做者为Glyph,目的是为了开发网络游戏。html

Twisted的历史react

  Glyph开始采用Java多线程,来开发Twisted Reality,结果多线程使得开发变得复杂,难以扩展。程序员

出现了死锁,加锁出错,缓存污染等问题。Glyph发现本身打开了问题的大门,他须要本身实现一个网络编程

引擎,而这与他想开发的游戏同样有趣。缓存

  而Java的NIO是在2002年才出现的。安全

Twisted具备的新功能网络

一、使用基于事件驱动的编程模型,而不是多线程模型。多线程

二、跨平台:为主流操做系统平台暴露出的事件通知系统提供统一的接口。架构

三、“内置电池”的能力:提供流行的应用层协议实现,所以Twisted立刻就可为开发人员所用。函数

四、符合RFC规范,已经经过健壮的测试套件证实了其一致性。

五、能很容易的配合多个网络协议一块儿使用。

六、可扩展。

Twisted架构概览

事件驱动:

在事件驱动版本的程序中,3个任务交错执行,但仍然在一个单独的线程控制中。当处理I/O或者其余昂贵的操做时,注册一个回调到事件循环中,而后当I/O操做完成时继续执行。回调描述了该如何处理某个事件。事件循环轮询全部的事件,当事件到来时将它们分配给等待处理事件的回调函数。这种方式让程序尽量的得以执行而不须要用到额外的线程。事件驱动型程序比多线程程序更容易推断出行为,由于程序员不须要关心线程安全问题。

reactor模式

reactor架构模式使得事件驱动程序来分离和调度多个客户端请求。

Twisted 关键模块

一、Deferred

二、Transports

三、Protocols

四、Applications:Service、Application、配置管理(TAC文件)、命令行工具twisd

五、Pb

 

引用:

一、http://www.aosabook.org/en/twisted.html

相关文章
相关标签/搜索