multiprocessing Event实现中断进程或程序

参考:https://www.cnblogs.com/MoKinLi/p/17931515.html

matlab 复制代码
import multiprocessing
import time

def worker(event, value):
    while True:
        # 检查事件是否被设置
        if event.is_set():
            # 事件被设置,中断程序
            break

        # 模拟工作
        time.sleep(1)
        print(f"Working: {value}")

if __name__ == "__main__":
    # 创建事件
    event = multiprocessing.Event()

    # 创建子进程
    p = multiprocessing.Process(target=worker, args=(event, "test"))
    p.start()

    # 等待 5 秒
    time.sleep(5)

    # 设置事件
    event.set()

    # 等待子进程结束
    p.join()

    print("程序已中断")

multiprocessing.Process(target=worker, args=(event, "test"))

启动子进程;主进程time.sleep(5)运行,当主进程设置事件 event.set()后子进程被关闭

1)去掉 p.join() 可以让程序继续运行,但子进程可能不会立即终止。

原因:

p.join() 方法会阻塞主进程,直到子进程结束。

如果不调用 p.join(),主进程会继续运行,而子进程会在后台继续运行。

2)主进程设置event.set() 是怎么被子进程识别的

相关推荐
小蕾Java12 分钟前
PyCharm 软件使用各种问题 ,解决教程
ide·python·pycharm
Lucky_Turtle14 分钟前
【PyCharm】设置注释风格,快速注释
python
kunge1v532 分钟前
学习爬虫第四天:多任务爬虫
爬虫·python·学习·beautifulsoup
萧鼎41 分钟前
Python schedule 库全解析:从任务调度到自动化执行的完整指南
网络·python·自动化
B站_计算机毕业设计之家2 小时前
机器学习实战项目:Python+Flask 汽车销量分析可视化系统(requests爬车主之家+可视化 源码+文档)✅
人工智能·python·机器学习·数据分析·flask·汽车·可视化
羊羊小栈2 小时前
基于「多模态大模型 + BGE向量检索增强RAG」的航空维修智能问答系统(vue+flask+AI算法)
vue.js·人工智能·python·语言模型·flask·毕业设计
星期天要睡觉2 小时前
模型部署——Flask 部署 PyTorch 模型
pytorch·python·flask
weixin_456904272 小时前
SHAP可视化代码详细讲解
python
DTS小夏2 小时前
算法社Python基础入门面试题库(新手版·含答案)
python·算法·面试
刘一哥GIS3 小时前
Windows环境搭建:PostGreSQL+PostGIS安装教程
数据库·python·arcgis·postgresql·postgis