

在上次的文章Python基础篇 - 多进程-进程的创建我们认识了创建多进程的两种基本方式。需要注意的是进程之间是隔离的,因为不同的进程是开销了不同的内存,每个进程就相当于独立的工厂,其全局变量互不共享。 本次的文章内容很简单,认识一下进程间的变量是互不影响的。

一. 各进程之间不共享全局变量
多进程之间:子进程修改全局变量,主进程并不会受到影响,子进程之间亦相互独立。
# 子进程修改全局变量,主进程并不会受到影响import multiprocessingimport time# 定义全局变量num = 100# 子进程任务:修改全局变量def task():global num # 声明使用全局变量num = 200 # 子进程中修改全局变量print(f"子进程中:num = {num}") # 打印修改后的值if __name__ == "__main__":print(f"主进程开始:num = {num}") # 主进程初始值# 创建子进程并启动p = multiprocessing.Process(target=task)p.start()p.join() # 等待子进程执行完毕print(f"主进程结束:num = {num}") # 主进程查看变量值# 主进程开始:num = 100# 子进程中:num = 200# 主进程结束:num = 100
解决方案:下篇文章将介绍进程间的通信机制,搭建桥梁以达到进程之间共享数据的目标。

总结:今日我们学习了Python基础篇-多进程-全局变量的隔离。主要认识了多进程中全局变量不共享的关键特性。多进程间内存完全隔离,主进程启动子进程时会复制自身内存,子进程修改的只是全局变量的副本,不会影响主进程原变量。下篇文章中将介绍进程间的通信方式,以达到共享数据的目的。在Python基础篇,后续我们将持续学习Python基础知识,介绍各种算法,祝每一位study er学习愉快。

