在 Python 中,可以使用 threading
模塊來(lái)創(chuàng)建和管理線程。要暫停線程,可以使用 threading.Event()
對(duì)象來(lái)實(shí)現(xiàn)。
下面是一個(gè)示例代碼,演示了如何暫停和恢復(fù)兩個(gè)線程:
import threading
import time
# 創(chuàng)建一個(gè) Event 對(duì)象,用于暫停和恢復(fù)線程
pause_event = threading.Event()
# 線程函數(shù)1
def thread1_func():
while True:
print("Thread 1 is running")
time.sleep(1)
# 檢查 Event 對(duì)象狀態(tài),如果處于暫停狀態(tài),則線程進(jìn)入等待狀態(tài)
pause_event.wait()
# 線程函數(shù)2
def thread2_func():
while True:
print("Thread 2 is running")
time.sleep(1)
# 檢查 Event 對(duì)象狀態(tài),如果處于暫停狀態(tài),則線程進(jìn)入等待狀態(tài)
pause_event.wait()
# 創(chuàng)建并啟動(dòng)兩個(gè)線程
thread1 = threading.Thread(target=thread1_func)
thread2 = threading.Thread(target=thread2_func)
thread1.start()
thread2.start()
# 暫停線程
pause_event.clear()
time.sleep(3)
# 恢復(fù)線程
pause_event.set()
# 等待線程執(zhí)行完畢
thread1.join()
thread2.join()
在上面的代碼中,創(chuàng)建了一個(gè) Event
對(duì)象 pause_event
,并在每個(gè)線程函數(shù)中使用 wait()
方法來(lái)檢查該對(duì)象的狀態(tài)。當(dāng) pause_event
處于暫停狀態(tài)(即 clear()
被調(diào)用),線程會(huì)進(jìn)入等待狀態(tài);當(dāng) pause_event
處于激活狀態(tài)(即 set()
被調(diào)用),線程會(huì)繼續(xù)執(zhí)行。
通過(guò)調(diào)用 clear()
方法,可以暫停線程;通過(guò)調(diào)用 set()
方法,可以恢復(fù)線程的執(zhí)行。在上面的示例中,線程會(huì)在啟動(dòng)后暫停 3 秒鐘,然后再恢復(fù)執(zhí)行,最后等待線程執(zhí)行完畢。