d*******r 发帖数: 3299 | 1 Python Concurrency 主流是用啥?
自带的 multi-threading with GIL
自带的 multi-process
gevent 这种 coroutine-based
或者,其他 ... ?
迷惑中...
看来还是 Node 方便,只有 multi-process 这个选择 |
p*****2 发帖数: 21240 | |
z****e 发帖数: 54598 | 3 为什么那么在意主流?
js是主流?
vert.x就可以给你搞python
import vertx
server = vertx.create_http_server()
@server.request_handler
def handle(req):
filename = "index.html" if req.uri == "/" else req.uri
req.response.send_file("webroot/" + filename)
server.listen(8080)
http://en.wikipedia.org/wiki/Vert.x
【在 d*******r 的大作中提到】 : Python Concurrency 主流是用啥? : 自带的 multi-threading with GIL : 自带的 multi-process : gevent 这种 coroutine-based : 或者,其他 ... ? : 迷惑中... : 看来还是 Node 方便,只有 multi-process 这个选择
|
z****e 发帖数: 54598 | 4 异步模型可以用twisted来做
msg可以用tornado
不过这种模型不能够让线程间通信
这个很讨厌,游戏等行当就是需要让线程间通信才行
所以你懂的,如果你只是打算做一些类似死套框架的工作的话
用什么都一样,不会有太大差异,那点效率
你用python本身就慢 |
V*********r 发帖数: 666 | 5 民间gevent/greenlet呼声比较高,因为使用简单,但龟叔对gevent意见比较大。龟叔
从2012年年底就开始重新设计event loop APIs(受twisted影响较大)和写一个参考实
现,准备加到py3.4的标准库里,号召twisted/tornado/gevent按他的新标准重写底层
代码。过渡期可能要4-5年。目测最后twisted受益最多,gevent要伤筋动骨或者废掉。
从长远看更看好twisted。
Python去除GIL的尝试基本都失败了,干脆继续锁着。与python在同一个抽象层次的语
言,如ruby/js/php/lua/...,多线程只会更差,或者干脆不支持。
【在 d*******r 的大作中提到】 : Python Concurrency 主流是用啥? : 自带的 multi-threading with GIL : 自带的 multi-process : gevent 这种 coroutine-based : 或者,其他 ... ? : 迷惑中... : 看来还是 Node 方便,只有 multi-process 这个选择
|
V*********r 发帖数: 666 | 6 Unfortunately vertx only runs on JVM.
【在 z****e 的大作中提到】 : 为什么那么在意主流? : js是主流? : vert.x就可以给你搞python : import vertx : server = vertx.create_http_server() : @server.request_handler : def handle(req): : filename = "index.html" if req.uri == "/" else req.uri : req.response.send_file("webroot/" + filename) : server.listen(8080)
|
d*******r 发帖数: 3299 | 7 很有信息量,多谢指点
可否给出 龟叔对gevent意见,和他长在开发的新 event loop APIs 的连接.
【在 V*********r 的大作中提到】 : 民间gevent/greenlet呼声比较高,因为使用简单,但龟叔对gevent意见比较大。龟叔 : 从2012年年底就开始重新设计event loop APIs(受twisted影响较大)和写一个参考实 : 现,准备加到py3.4的标准库里,号召twisted/tornado/gevent按他的新标准重写底层 : 代码。过渡期可能要4-5年。目测最后twisted受益最多,gevent要伤筋动骨或者废掉。 : 从长远看更看好twisted。 : Python去除GIL的尝试基本都失败了,干脆继续锁着。与python在同一个抽象层次的语 : 言,如ruby/js/php/lua/...,多线程只会更差,或者干脆不支持。
|
d*******r 发帖数: 3299 | 8 主流的意思就是用的人多,文档多,sample code多,
相关问题的 posts 好找,最好前景还好,我觉得还是很重要的。
当然,又主流,用起来又简单可靠是最好的。
本来想用 gevent,但是经常看到人吐糟说老大不喜欢,前景不好。。。
【在 z****e 的大作中提到】 : 为什么那么在意主流? : js是主流? : vert.x就可以给你搞python : import vertx : server = vertx.create_http_server() : @server.request_handler : def handle(req): : filename = "index.html" if req.uri == "/" else req.uri : req.response.send_file("webroot/" + filename) : server.listen(8080)
|
d******e 发帖数: 2265 | 9 I like. gevent. coroutine. is cool
【在 d*******r 的大作中提到】 : 主流的意思就是用的人多,文档多,sample code多, : 相关问题的 posts 好找,最好前景还好,我觉得还是很重要的。 : 当然,又主流,用起来又简单可靠是最好的。 : 本来想用 gevent,但是经常看到人吐糟说老大不喜欢,前景不好。。。
|
m******t 发帖数: 635 | 10 感觉node是个大坑,跳之前慎重
【在 d*******r 的大作中提到】 : Python Concurrency 主流是用啥? : 自带的 multi-threading with GIL : 自带的 multi-process : gevent 这种 coroutine-based : 或者,其他 ... ? : 迷惑中... : 看来还是 Node 方便,只有 multi-process 这个选择
|
|
|
d*******r 发帖数: 3299 | 11 一直在纠结要不要用 node, 你给点犀利的负面意见,大家好讨论啊
【在 m******t 的大作中提到】 : 感觉node是个大坑,跳之前慎重
|
a*w 发帖数: 4495 | 12 换node
【在 d*******r 的大作中提到】 : Python Concurrency 主流是用啥? : 自带的 multi-threading with GIL : 自带的 multi-process : gevent 这种 coroutine-based : 或者,其他 ... ? : 迷惑中... : 看来还是 Node 方便,只有 multi-process 这个选择
|
V*********r 发帖数: 666 | 13 Guido at PyCon2013 (Mar 2013)
http://www.youtube.com/watch?v=sOQLVm0-8Yg
Guido at Twitter (Oct 2013)
http://www.youtube.com/watch?v=1coLC-MUCJc
【在 d*******r 的大作中提到】 : 很有信息量,多谢指点 : 可否给出 龟叔对gevent意见,和他长在开发的新 event loop APIs 的连接.
|
d*******r 发帖数: 3299 | 14 多谢,mark 之
【在 V*********r 的大作中提到】 : Guido at PyCon2013 (Mar 2013) : http://www.youtube.com/watch?v=sOQLVm0-8Yg : Guido at Twitter (Oct 2013) : http://www.youtube.com/watch?v=1coLC-MUCJc
|
s********k 发帖数: 6180 | 15 python还是做不好那种CPU bound的Concurrency, 如果只是IO bound的gevent和
twisted都不错,或者可以自己实现一个coroutine的简单架构,我原来做过一个
coroutine的自己轮子,很方面。
关于GIL的问题参见david beasley的PPT,讲得很好
【在 d*******r 的大作中提到】 : Python Concurrency 主流是用啥? : 自带的 multi-threading with GIL : 自带的 multi-process : gevent 这种 coroutine-based : 或者,其他 ... ? : 迷惑中... : 看来还是 Node 方便,只有 multi-process 这个选择
|
d*******r 发帖数: 3299 | 16 david beasley的PPT 我粗略看过,那上面好像就讲了怎么做自己的 coroutine 轮子
【在 s********k 的大作中提到】 : python还是做不好那种CPU bound的Concurrency, 如果只是IO bound的gevent和 : twisted都不错,或者可以自己实现一个coroutine的简单架构,我原来做过一个 : coroutine的自己轮子,很方面。 : 关于GIL的问题参见david beasley的PPT,讲得很好
|
z****e 发帖数: 54598 | 17 装个jvm又不收你钱
【在 V*********r 的大作中提到】 : Unfortunately vertx only runs on JVM.
|
z****e 发帖数: 54598 | 18 那就twisted咯
这个东西直接看版本号就可以判断出来一二
【在 d*******r 的大作中提到】 : 主流的意思就是用的人多,文档多,sample code多, : 相关问题的 posts 好找,最好前景还好,我觉得还是很重要的。 : 当然,又主流,用起来又简单可靠是最好的。 : 本来想用 gevent,但是经常看到人吐糟说老大不喜欢,前景不好。。。
|
z****e 发帖数: 54598 | 19 主要是javascript是一个很垃圾的语言
【在 d*******r 的大作中提到】 : 一直在纠结要不要用 node, 你给点犀利的负面意见,大家好讨论啊
|
d*******r 发帖数: 3299 | 20 有 coffeescript 啊,以后 clojurescript 也能用吧
【在 z****e 的大作中提到】 : 主要是javascript是一个很垃圾的语言
|
|
|
V*********r 发帖数: 666 | 21 twisted很成熟不假,但这不应该从版本号看出来;
它的版本号取自年份,其更替速度与软件演化速度并无直接联系。
http://twistedmatrix.com/trac/wiki/FrequentlyAskedQuestions#Why
【在 z****e 的大作中提到】 : 那就twisted咯 : 这个东西直接看版本号就可以判断出来一二
|
k**o 发帖数: 15334 | |
s********k 发帖数: 6180 | 23 是的,毕竟如果只是一个简单的异步,自己实现coroutine就10 lines左右,比twisted
简单
★ 发自iPhone App: ChineseWeb 7.8
【在 d*******r 的大作中提到】 : david beasley的PPT 我粗略看过,那上面好像就讲了怎么做自己的 coroutine 轮子
|