我編寫了一個小程序來評估元胞自動機的狀態並將其繪製在屏幕上。我有雙核PC,所以爲了提高效率,我決定在兩個線程中進行計算。我做了我自己的QThread的實現,就像這樣:Python和Qt中的併發編程
clacc MyThread(QThread):
def run(self):
...
然後我做這個類的兩個實例,並美其名曰:
thread1 = MyThread()
thread2 = MyThread()
thread1.start()
thread2.start()
當我打開任務管理器,我發現他們'一個接一個地執行:首先是thread1,然後是thread2,然後再次是thread1,依此類推。 問題是:有沒有辦法調用它們,以便它們可以獨立工作,在不同的內核上,在一個時刻,而不是一個接一個地工作?
取決於你的線程實際上做了什麼。看起來他們只是沒有足夠的CPU來安排在兩個內核上,或者他們正在使用一個共享資源,並因此而前進。 – Mat
你可能想看看這個:http://blip.tv/carlfk/mindblowing-python-gil-2243379。 Python中的線程相當尷尬,至少可以說至少可以說 – TeaOverflow
@Evgeni - 你所說的是真實的,除了'QThreads'還有它們[自己的線程模型和問題](http:// qt-project .ORG/DOC /線程basics.html)。 @aga - 你應該看看那個任務管理器,你也可以看到 – mata