-1
我知道在cPython解釋器中有一個GIL,即使我們有一個多核處理器,也會導致OS在某一時刻運行一個線程。同時,從一個線程轉換到另一個線程會帶來一點時間成本。所以我想知道在多任務模式下我們可以使用更多的線程來提高效率嗎?我們可以通過在Python中使用多線程編程來提高代碼的效率嗎?
我知道在cPython解釋器中有一個GIL,即使我們有一個多核處理器,也會導致OS在某一時刻運行一個線程。同時,從一個線程轉換到另一個線程會帶來一點時間成本。所以我想知道在多任務模式下我們可以使用更多的線程來提高效率嗎?我們可以通過在Python中使用多線程編程來提高代碼的效率嗎?
要在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()
當你穿上去.start()
,同爲德bThread但隨着的methodB,在不同內核的同時aThread將執行了methodA。
如果你需要等待兩個線程,直到他們完成他們的工作中使用.join()
這樣的:
aThread.join()
bThread.join()
#Then continue.
併發it'sa非常大的世界有很多的選擇和方法,在不同情況下使用。
我真的推薦去官方site。
[This thread]的可能重複(https://stackoverflow.com/questions/20939299/does-python-support-multithreading-can-it-speed-up-execution-time?rq=1) – Gribouillis