在python的不同内核上运行方法
有没有什么简单的方法可以让MethodA()和MethodB()在两个不同的内核中运行?我不是说两条不同的线。我在Windows中运行,但我想知道是否可以独立于平台 编辑:那怎么办 和在python的不同内核上运行方法,python,multicore,Python,Multicore,有没有什么简单的方法可以让MethodA()和MethodB()在两个不同的内核中运行?我不是说两条不同的线。我在Windows中运行,但我想知道是否可以独立于平台 编辑:那怎么办 和 ?假设您使用CPython(参考实现),则答案是否,因为。在CPython中,线程主要用于IO较多的情况(一个线程等待,另一个线程进行计算)。一般来说,运行不同的线程是在多个内核上运行的最佳可移植方式。当然,在Python中,全局解释器锁使这一点变得毫无意义——一次只有一个线程会取得进展。由于全局解释器锁,Py
?假设您使用CPython(参考实现),则答案是否,因为。在CPython中,线程主要用于IO较多的情况(一个线程等待,另一个线程进行计算)。一般来说,运行不同的线程是在多个内核上运行的最佳可移植方式。当然,在Python中,全局解释器锁使这一点变得毫无意义——一次只有一个线程会取得进展。由于全局解释器锁,Python程序一次只能运行一个线程。如果您想要真正的多核Python编程,您可以研究(它可以访问JVM的线程)或brilliant,它具有类似通道和微线程的功能。您必须使用单独的进程(因为经常提到的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()