[英]Running methods on different cores on python
有沒有簡單的方法可以制作2個方法,比如說MethodA()和MethodB()在2個不同的內核中運行? 我的意思不是2個不同的線程。 我正在Windows中運行,但是我想知道是否可以獨立於平台。
編輯:那又如何
http://docs.python.org/dev/library/multiprocessing.html和並行python嗎?
您必須使用單獨的過程(由於經常提到的GIL)。 多處理模塊在這里提供幫助。
from multiprocessing import Process
from somewhere import A, B
if __name__ == '__main__':
procs = [ Process(target=t) for t in (A,B) ]
for p in procs:
p.start()
for p in procs:
p.join()
假設您使用CPython(參考實現),那么由於Global Interpreter Lock ,答案是否定的。 在CPython中,線程主要用於有大量IO要做的事情(一個線程等待,另一個線程進行計算)。
通常,運行不同的線程是在多個內核上運行的最佳可移植方式。 當然,在Python中,全局解釋器鎖使這成為一個爭論點-一次只有一個線程會取得進展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.