在Python中,可以使用threading
模塊來創建和管理線程。在線程中,可以使用Event
對象或者Condition
對象來實現線程的暫停和恢復。
Event
對象來實現線程的暫停和恢復:
Event
對象:event = threading.Event()
event.wait()
來暫停線程,直到收到信號。event.set()
來發送信號,恢復線程。示例代碼:
import threading
import time
def worker(event):
print("Worker thread started")
event.wait() # 等待收到信號
print("Worker thread resumed")
# 執行其他操作
event = threading.Event()
t = threading.Thread(target=worker, args=(event,))
t.start()
time.sleep(2) # 等待2秒
event.set() # 發送信號,恢復線程
Condition
對象來實現線程的暫停和恢復:
Condition
對象:condition = threading.Condition()
condition.wait()
來暫停線程,直到收到信號。condition.notify()
或者condition.notifyAll()
來發送信號,恢復線程。示例代碼:
import threading
import time
def worker(condition):
print("Worker thread started")
with condition:
condition.wait() # 等待收到信號
print("Worker thread resumed")
# 執行其他操作
condition = threading.Condition()
t = threading.Thread(target=worker, args=(condition,))
t.start()
time.sleep(2) # 等待2秒
with condition:
condition.notify() # 發送信號,恢復線程