twisted是什么梗_Twisted是什么

来源:互联网 2023-05-30 14:24:08

Twisted是用Python实现的事件驱动的网络引擎框架。Twisted诞生于2000年初。在当时的网游开发者看来,无论使用哪种语言,能够兼顾扩展性和跨平台性的网络库都很少。

扭曲作者试图在当时的现有环境下开发游戏,难度很大。他们迫切需要一个高度可伸缩的、事件驱动的、跨平台的网络开发框架,所以他们决定自己实现一个。

并向之前的游戏和web应用的开发者学习,借鉴他们的经验和教训。


(资料图片)

Twisted支持许多常见的传输和应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC和FTP。就像Python一样,

Twisted还具有“自带电池”的特性。Twisted对它支持的所有协议都有客户机和服务器实现,并附带了基于命令行的工具。

它使得配置和部署产品级Twisted应用程序变得非常方便。

一、为什么需要 Twisted

2000年,《扭曲的现实》的作者Glyph正在开发一款名为《扭曲的现实》的基于文本的多人在线游戏。这个游戏是用Java开发的。

它充满了线程——,每个连接有三个线程要处理。处理输入的线程将在读操作时阻塞,处理输出的线程将在一些写操作时阻塞,并且“逻辑”线程将在等待计时器超时或事件排队时休眠。

随着玩家在虚拟世界中的移动和交互,线程被死锁,缓存被污染。程序中的加锁逻辑对于——几乎从不使用多线程,使得整个软件复杂,漏洞百出,极难扩展。

为了寻找其他解决方案,作者发现了Python。

特别是Python中的select模块,用来复用socket和pipe等流对象的I/O(UNIX规范第三版(SUSv3)描述了select)。那时,

Java不提供操作系统的选择接口或任何其他异步I/O API (java.nio,一个用于非阻塞I/O的包,被添加到J2SE 1.4并于2002年发布)。

通过使用Python中的select模块快速构建游戏原型,快速降低程序复杂度,比多线程版本更可靠。

Glyph很快转向Python、select和事件驱动编程。他用Python的select模块来编写游戏的客户端和服务器。但他想要的不止这些。从根本上说,

他希望将网络行为转化为对游戏中对象的方法调用。如果你能在游戏中收到邮件,

像Nethack mailer这样的守护程序?如果游戏中每个玩家都有主页会怎样?Glyph发现他需要优秀的HTTP客户端和服务器的IMAP和Python实现。

而这些都得用select。

他首先求助于Medusa,这是一个在20世纪90年代中期开发的平台,Python中的asyncore模块可用于编写web服务。Asyncore是一个异步处理套接字的模块。

调度程序和回调接口建立在操作系统的选择API上。

这对Glyph来说是一个令人兴奋的发现,但是美杜莎有两个缺点:

这个项目在2001年不再维持,glyph开发了扭曲现实。Asyncore只是socket的一个很薄的封装层。

应用程序编写人员仍然需要直接操作套接字。这意味着程序可移植性的负担仍然落在程序员自己身上。另外,asyncore对Windows的支持在当时还是有问题的。

Glyph希望在Windows上运行带有图形用户界面的客户端。Glyph需要自己实现一个网络引擎平台,他意识到扭曲的现实打开了问题的大门。

这和他的游戏一样有趣。

久而久之,游戏《扭曲的现实》就演变成了一个扭曲的网络引擎平台。它可以做到Python中现有的网络平台当时做不到的事情:

使用事件驱动的编程模型,而不是多线程模型。跨平台:为主流操作系统平台公开的事件通知系统提供统一的接口。“内置电池”能力:提供流行的应用层协议实现,因此Twisted可以立即被开发者使用。

符合RFC 规范,已经通过健壮的测试套件证明了其一致性。能很容易的配合多个网络协议一起使用。可扩展。Twisted 是一个事件驱动型的网络引擎。

由于事件驱动编程模型在Twisted 的设计哲学中占有重要的地位,因此这里有必要花点时间来回顾一下究竟事件驱动意味着什么。

事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定。它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。另外两种常见的编程范式是(单线程)同步以及多线程编程。

本文twisted是什么梗,Twisted是什么到此分享完毕,希望对大家有所帮助。

x

热门推荐

twisted是什么梗_Twisted是什么

2023-05

当前简讯:2023年4月全国查处违反中央八项规定精神问题数据公布

2023-05

君子一言是九鼎是什么生肖_一言九鼎是君王是什么生肖简介介绍-世界观点

2023-05

清风头条丨安仁县:边巡边改守护群众“脚下的安全”

2023-05

【天天快播报】联想拯救者真不香了吗?今年618大促哪些RTX40系游戏本才值得买?

2023-05

当前热议!文体策划部是干嘛的_文体策划

2023-05

今日热闻!神舟十六号计划三十日发射,太空驻留约五个月,计划今年十一月返回东风着陆场

2023-05

代工巨头引入英伟达AI平台,加速智能工厂普及

2023-05

零主营收入、总资产不足5亿 键嘉医疗要募15亿?|前沿资讯

2023-05

【世界聚看点】全国多地高温预警:部分地区已超40℃

2023-05

推荐阅读

山西2021年度发放国家助学贷款逾29亿元 助40万名学生圆大学梦

2021-12

伪造事故赚取“差价” 机动车骗保成诈骗犯罪重灾区

2021-12

内蒙古满洲里新增确诊34例

2021-12

张家口崇礼全力做好冬奥测试赛服务保障工作

2021-12

咖啡、啤酒、盒饭……早出晚归的打工人 寒夜的便利店有故事

2021-12

云南涉疫医疗废物实现“日产日清”

2021-12

对话“贩毒”母亲:不认罪正申诉,盼抗癫痫药物氯巴占可合法购买

2021-12

甘肃省电力投资集团有限责任公司原党委委员、副总经理刘晓黎被开除党籍

2021-12

湖北省委政法委原副巡视员汪宗兴接受审查调查

2021-12

利用游戏平台设线上赌场 江苏一犯罪团伙涉非法牟利数百万元被连锅端

2021-12