在Python中,應用程序通常只運行在單個執行緒上,除非你明確啟用了多執行緒。

為什麼要使用多執行緒呢?在Python中,代碼是按照順序運行的,一個指令接著一個指令執行。

如果你定義了一個睡眠3秒然後打印信息的函數,像這樣:

import time

def greet():
 time.sleep(3)
 print('hello')

greet()
print('world')

world字符串將在3秒後打印出來,因為我們在greet()函數中調用了time.sleep(3)

這只是一個簡單的例子,但想象一下處理圖像、從網絡獲取資源或將大文件寫入磁盤等耗時的任務,這些都需要較長的時間。

通過使用多執行緒,我們可以將耗時的函數運行在單獨的執行緒中,同時繼續執行主程序。

threading標准庫模塊能夠幫助我們實現多執行緒。你可以從中導入Thread

from threading import Thread

然後,我們將要執行的函數作為target參數傳遞給Thread()函數,以獲得一個執行緒對象:

t = Thread(target=greet)

接下來,我們調用它的start()方法來啟動這個執行緒:

t.start()

試著運行下面的代碼:

from threading import Thread
import time

def greet():
 time.sleep(3)
 print('hello')

t = Thread(target=greet)
t.start()

print('world')

你會發現worldhello早3秒打印出來。

除非你將執行緒設置為守護線程,否則程序將一直運行,直到該執行緒(或它開啟的所有其他執行緒)結束。

這就是多執行緒的基本介紹。雖然強大,但如果使用不當,很容易引入錯誤。