标题 | 详情 |
---|---|
作者简介 | 愚公搬代码 |
头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。 |
博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
欢迎 | 👍点赞、✍评论、⭐收藏 |
文章目录
- 🚀前言
- 🚀一、进程间通信
- 🔎1.验证进程间无法直接共享数据
- 🔎2.队列(Queue)简介
- 🔎3.多进程队列的使用
- 🔎4.使用队列实现进程间通信
- 🔎5.关键点总结
🚀前言
在现代计算机系统中,进程间通信(Inter-Process Communication, IPC)扮演着至关重要的角色。随着多核处理器和分布式系统的普及,如何有效地实现不同进程之间的信息交换,已成为软件开发中的一项核心挑战。本文将深入探讨进程间通信的基本概念、常用方法和应用场景,帮助读者理解其在系统架构中的重要性。
🚀一、进程间通信
进程之间默认不共享内存,每个进程拥有独立的数据空间。若需实现进程间数据传递,需借助特殊机制。Python的multiprocessing
模块提供了队列(Queue)和管道(Pipes)等方式,本节重点介绍队列。
🔎1.验证进程间无法直接共享数据
示例:全局变量在进程间的独立性
python"># -*- coding:utf-8 -*-
from multiprocessing import Processdef plus():print('-------子进程1开始------')global g_numg_num += 50print('g_num is %d'%g_num)print('-------子进程1结束------')def minus():print('-------子进程2开始------')global g_numg_num -= 50print('g_num is %d'%g_num)print('-------子进程2结束------')g_num = 100 # 定义一个全局变量
if __name__ == '__main__':print(