2010-12-23 92 views

回答

12

您必須爲多個內核明確編程。有關Python中許多並行處理解決方案,請參閱this page上的對稱多處理選項。 Parallel Python是一個不錯的選擇,如果你不能比較其他選項,請看例子here

雖然有些問題不能利用多核。想想你在三個朋友的幫助下如何能夠更快地跑上樓梯。不會發生!

4

我不知道爲什麼沒有人提到的CPython的GIL(全局解釋器鎖)呢。這基本上意味着一個Python解釋器中的多個線程不能使用多個內核的功能,因爲許多操作受全局鎖保護,以保證線程安全。這隻適用於少量應用程序 - 受CPU限制的應用程序。有關更多信息,只需搜索術語「GIL」,就已經有很多問題了(例如that one)。

當然,這個答案假定您實際上正在使用多個線程,否則您將無法使用多個核心(multiprocessing將是另一種可能性)。