Twisted 的历史

2012-09-22 05:33:29 +08:00
 Livid
http://www.aosabook.org/en/twisted.html

2000 的时候一位叫做 Glyph 的程序员在用 Java 做一个叫做 Twisted Reality 的 MUD 游戏,之前的 3 threads 实现太过于痛苦,然后他发现 Python 的 select 异步 IO 给力,于是就转用 Python 开发。然后世界上诞生了一个叫做 Twisted 的网络编程框架。
10106 次点击
所在节点    Python
42 条回复
dhysum
2012-09-26 16:35:14 +08:00
线程和异步是两个摡念,没有可比性!
fanzeyi
2012-09-26 17:41:29 +08:00
=.= 写 LPC 的时候一直在幻想用 Python 写……
skywinger
2012-09-26 18:01:00 +08:00
哈哈,2000的时候,JAVA没有NIO库,NIO就是为了异步IO方式而设计的。
skywinger
2012-09-26 18:03:21 +08:00
目前JAVA的NIO可以使用linux系统内核的epoll方式的IO操作,比select 异步IO还要高效。
bhuztez
2012-09-26 18:20:44 +08:00
@skywinger 这点上和比Twisted有啥优势呢?
skywinger
2012-09-26 18:52:40 +08:00
@bhztez epoll是linux内核支持的异步IO接口,效率比select轮询方式的要高。
sillyousu
2012-09-26 19:14:22 +08:00
Twisted Introduction

This multi-part series introduces Asynchronous Programming and the Twisted networking framework.

http://krondo.com/?page_id=1327
notedit
2012-09-26 19:57:58 +08:00
@skywinger 在并发数不高的时候 select效率比epoll高
jamiesun
2012-09-26 20:57:00 +08:00
协程比异步要高级一点。
skywinger
2012-09-26 23:23:47 +08:00
其实,windows平台也不错,除了异步IO接口以外,还有complet port(完成端口)、AsyncEventSocket、AsyncSelectSocket等。
yegle
2012-09-27 09:54:06 +08:00
求对比thread和greenlet…
bhuztez
2012-09-27 10:16:36 +08:00
@skywinger 这和内核实现的啊,不能体现是Java NIO的优势吧,毕竟Twisted也是可以epoll的。
raptor
2012-09-28 14:39:51 +08:00
@yegle 适用于不同的场合,不好比啊。
myrual
2012-10-17 22:57:15 +08:00
@yegle greenlet 启动速度更快。
jjx
2012-11-07 21:03:46 +08:00
twisted 在windows下用cython实现了iocp的,gevent可没有
twsited 框架设计可说是工业级的,服务异常稳定,不会奔溃,用过都有感觉
gevent 大magic 了,我个人还是比较喜欢更明确的异步写法
myrual
2012-11-07 21:30:58 +08:00
以我的感受来说,twisted把tcp 网络编程需要考虑的三个场景都提供了简单的接口供你发挥。建立链接,接受数据,断开链接。
phuslu
2012-11-08 12:18:53 +08:00
楼上的兄弟把 twisted 的好处都说完啦, 不过 callback 那种缠绕式的代码还是挺郁闷的, 这也是 gevent 能流行起来的原因, 有句话不是说么 twisted is twist.
新版的 tornado/twisted 都有 yield/generator 风格的异步调用来简化 callback 了.
我觉得类似 gevent 这种 "同步代码异步运行" 的方式是深得人心的.
http://mail.python.org/pipermail/python-ideas/2012-October/016424.html
HowardMei
2012-11-08 12:24:15 +08:00
@jjx @myrual @phuslu http://cyclone.io/ 几位大牛用过没? 按以上优点,cycone + pypy 好像比 基于 gevent 的方案还优秀?
phuslu
2012-11-08 12:42:48 +08:00
@HowardMei 没找到他的 benchmark 代码, 不过我对 gevent 比 tornado 慢 这个结果有点怀疑.
HowardMei
2012-11-08 14:27:10 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/48452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX