http://walele.com
易記學 程式設計教學 http://ez2learn.com/
易記學 程式設計討論區 http://forum.ez2learn.com
VICTOR's 個人Blog http://blog.ez2learn.com/
財報分析王 http://victorlin.serveftp.org/stock/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.82.16
今天我看了一下stackless python
有幾點還蠻困惑的
我對它的理解 是覺得他類似twisted那樣
他從頭到尾可能只有一個
stackless.run()的main thread在跑
而會對於tasklet排程 決定什麼時候要跑哪個tasklet
就和twisted的reactor.run()類似
但是tasklet可以呼叫stackless.schedule()
所以就等於可以在很多不同的tasklet中跳來跳去
(我記得程式語言課有上過 說些語言好像就是這種方式 在不同的行程之間跳躍)
加上channel可以互丟訊息
我這樣的認知正確嗎?
如果只有這樣,當某個tasklet做很吃重的工作時
應該也會像是reactor.run遇到某個在main thread裡呼叫吃重工作的程式一樣
其它task在main thread的工作結束之前就沒辦法完成
比起erlang可以將任務丟給不同的機器做
twisted可以把任務丟給thread pool
stackless在這樣看來好像只有單一個process在跑event loop而已
是這樣嗎? 那他的好處又是在哪裡?
直接用twsited似乎反而比較輕鬆
而且好像也沒有用到多核心的好處
以上
謝謝
--
哇咧咧 創意投票系統