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() 是怎么被子进程识别的

相关推荐
天才测试猿8 小时前
2026软件测试面试八股文(含答案+文档)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
张小凡vip9 小时前
python--爬虫--成熟的爬虫框架Scrapy
爬虫·python·scrapy
Pluchon9 小时前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
不瘦80斤不改名10 小时前
01-vibe-coding-起源与本质
人工智能·python
夜雪一千10 小时前
如何对新闻数据进行模糊去重
python
oyguyteggytrrwwwrt12 小时前
3dgs渲染部分详细注释
python
天天爱吃肉821814 小时前
【重磅发布:拿下新超仁达代理权 】
大数据·人工智能·python·功能测试·汽车
神王宝宝 王者小学14 小时前
面向领域驱动架构的查询实现方式
前端·python·架构
ningmengjing_15 小时前
Redis 从入门到实战:Python操作全攻略
数据库·redis·python
️学习的小王15 小时前
智能文档助手:基于RAG的本地化文档问答系统实战指南
人工智能·python·机器学习