作者StubbornLin (Victor)
看板Python
标题[心得] Twisted是好物!
时间Sun Jul 6 22:22:49 2008
Twisted真的很好用 XD
它那个reactor的架构用起来真的超顺手
我东弄西弄了很多东西,发现该有的它里面几乎都有了= =
非同步的机制非常完善,一开始reactor和deferred等有些难懂
等了解了之後真的很好用,东西都是用串起来的感觉 而且也很稳固
用来写伺服器还蛮爽快的,写起来蛮轻松的
我之前就有一个伺服器用Twisted写好,我试过了很多种framework之类的
apache、asio等等,都因为太麻烦或是架构弹性不够甚至是文件太多= .=
看不完 囧
用Twisted写简单到有点不敢相信的感觉 XD
目前我正在写网页爬虫程式,我之前都用标准的抓网页函式库之类的来写
正我最近又要写一个,才在脑子里闪过,靠! 我之前写过的那些东西
不都是Twisted里面有的吗= =||
在用Twisted之前,我的爬虫程式除了抓网页就算了,要抓的网页太多
还得写threadpool去分领任务来做,光是弄那些前置的鬼东西
就花了我很多时间,而这些对Twsited这怪物来说
根本就是小菜一盘,想要分到某个thread去工作 只要写
threads.callInThread(foo, 'WTF')
就会自动被派到thread pool去做
而之前非同步的网页抓取
也只是用没什麽效率的select等方式抓网页的
我自己弄了一套event interface去等回传的资料
到头来在thread里处理卡住还是耗不少时间
但是为了减少复杂性,又不想把程式写复杂
twisted用IOCP等OS支援有效率的非同步方式工作
超有效率,而且配合thread pool等
网页一抓完我就把它丢给thread pool去处理,parse这种吃cpu的事
就能够充份运用到多核心的好处
而且Twisted似乎是以稳固出名的,惊人地稳定
总之Twisted真是我的救星
Twsited赞 XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.137.201
1F:推 hl4:心动不如马上行动!! 07/06 23:45
2F:推 yungyuc:python thread 不能用多核... 07/07 13:51
3F:→ StubbornLin:囧 python的thread不能用多核阿? 为什麽 07/07 14:12
4F:推 LiloHuang:Multiple threads in Python cannot run concurrently 07/07 16:20
5F:→ LiloHuang:due to the global interpreter lock (GIL) :P 07/07 16:20
6F:→ yungyuc:GIL :) workaround 是弃 thread 改 pyprocessing 07/08 06:40