[心得] Twisted是好物!

看板Python作者 (Victor)時間17年前 (2008/07/06 22:22), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/4 (看更多)
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

07/06 23:45, , 1F
心動不如馬上行動!!
07/06 23:45, 1F

07/07 13:51, , 2F
python thread 不能用多核...
07/07 13:51, 2F

07/07 14:12, , 3F
囧 python的thread不能用多核阿? 為什麼
07/07 14:12, 3F

07/07 16:20, , 4F
Multiple threads in Python cannot run concurrently
07/07 16:20, 4F

07/07 16:20, , 5F
due to the global interpreter lock (GIL) :P
07/07 16:20, 5F

07/08 06:40, , 6F
GIL :) workaround 是棄 thread 改 pyprocessing
07/08 06:40, 6F
文章代碼(AID): #18SDKx7v (Python)
文章代碼(AID): #18SDKx7v (Python)