python线程暂停和恢复的方法是什么

561
2023/10/2 22:04:32
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Python中,可以使用threading模块来创建和管理线程。在线程中,可以使用Event对象或者Condition对象来实现线程的暂停和恢复。

  1. 使用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()  # 发送信号,恢复线程
  1. 使用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()  # 发送信号,恢复线程

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 怎么用Python抓取网站数据