首页 > 技术文章 > python3 进程之间数据是隔离的

lilyxiaoyy 2019-06-03 11:41 原文

进程之间数据是隔离的,相当于两家公司之间是隔离的

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

推荐阅读