精華區beta Python 關於我們 聯絡資訊
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