我了解到在cPython解释器中有一个GIL,即使我们有一个多核处理器,它也会导致操作系统马上运行一个线程。同时,从一个线程转换到另一个线程会带来一点时间成本。所以我想知道在多任务模式下我们可以使用更多的线程来提高效率吗?
答案 0 :(得分:0)
要在Python程序中使用多个核心,必须使用并发。例如:
import threading
def methodA():
#Do Something
def methodB():
#Do Something
aThread = threading.Thread(target=methodA)
aThread.start()
bThread= threading.Thread(target=methodA)
bThread.start()
当您将de .start()
与de bThread相同但使用methodB时,aThread将在不同的核心中同时执行方法A.
如果您需要等待两个线程,直到他们完成工作,请使用.join()
,如下所示:
aThread.join()
bThread.join()
#Then continue.
并发性是一个非常大的世界,在不同的情况下可以使用很多选项和方法。
我真的建议访问官方site。