我知道Python有一個global lock,我讀過了Glyph的python multithreading的解釋。但我仍然想嘗試一下。我決定做一個簡單的(概念上的)任務是對圖片進行水平和垂直邊緣檢測。Python中的線程練習
這裏發生了什麼(僞):
for pixels in picture:
apply sobel operator horizontal
for pixels in picture:
apply sobel operator vertical
這兩個循環可以完全獨立運行,因此會成爲多線程的主要候選對象。 (在任何非常大的圖片上運行這兩個循環可能需要10秒以上)。但是,當我嘗試在python中使用threading
模塊時,由於全局鎖定而需要兩倍的時間。我的問題是,我是否應該放棄所有希望在python的兩個線程中執行此操作並嘗試使用另一種語言?如果我可以開拓進取,我應該使用哪些模塊?如果不是,我應該用什麼語言進行實驗?
多處理/處理模塊爲您處理多個進程和IPC,並且允許比CPU密集型任務的傳統Python線程更好地擴展。 – Jay 2009-02-11 04:11:52