作者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
推 hl4:心動不如馬上行動!! 07/06 23:45
推 yungyuc:python thread 不能用多核... 07/07 13:51
→ StubbornLin:囧 python的thread不能用多核阿? 為什麼 07/07 14:12
推 LiloHuang:Multiple threads in Python cannot run concurrently 07/07 16:20
→ LiloHuang:due to the global interpreter lock (GIL) :P 07/07 16:20
→ yungyuc:GIL :) workaround 是棄 thread 改 pyprocessing 07/08 06:40