我们可以通过在python中使用多线程编程来提高代码的效率吗?

时间:2017-08-13 06:59:50

标签: python multithreading

我了解到在cPython解释器中有一个GIL,即使我们有一个多核处理器,它也会导致操作系统马上运行一个线程。同时,从一个线程转换到另一个线程会带来一点时间成本。所以我想知道在多任务模式下我们可以使用更多的线程来提高效率吗?

1 个答案:

答案 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