阅读量:2
在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() # 发送信号,恢复线程