进程之间数据是隔离的,相当于两家公司之间是隔离的
from multiprocessing import Process def func(lst, name): lst.append(66) print(name, lst) if __name__ == '__main__': lst = [1, 2] p1 = Process(target=func, args=(lst, "进程1")) p2 = Process(target=func, args=(lst, "进程2")) p1.start() p2.start() p1.join() p2.join() print("主进程结束", lst)
执行结果:
进程1 [1, 2, 66] 进程2 [1, 2, 66] 主进程结束 [1, 2]
接下来再看一个函数内引用全局变量的例子
from multiprocessing import Process def func(name): print(f"{name}开始") global n n = 0 print(f"{name}结束,n={n}") if __name__ == '__main__': n = 100 p1 = Process(target=func, args=("进程1",)) p2 = Process(target=func, args=("进程2",)) p1.start() p2.start() p1.join() p2.join() print(f"主进程结束,n={n}")
执行结果:
进程1开始 进程1结束,n=0 进程2开始 进程2结束,n=0 主进程结束,n=100