写法1

import time
from multiprocessing import Process


def func(name, age):
    print(f"我是{name}")
    time.sleep(0.2)
    print(f"{name}结束 {age}")


if __name__ == '__main__':
    # target是目标函数,args是位置参数,必须是元组类型,kwargs是关键字参数,必须是字典类型
    p1 = Process(target=func, args=("进程1",), kwargs={"age": 18})  # 创建第一个进程
    p2 = Process(target=func, args=("进程2",), kwargs={"age": 20})  # 创建第二个进程
    p1.start()  # 开启第一个进程
    p2.start()  # 开启第二个进程
    print("主进程执行结束,子进程是依附于主进程存在的,所以,子进程都结束后,主进程才真正的结束。")

执行结果:

主进程执行结束,子进程是依附于主进程存在的,所以,子进程都结束后,主进程才真正的结束。

我是进程1

我是进程2

进程1结束 18

进程2结束 20

写函数,target是功能,args是位置参数,kwargs是关键字参数

python多进程获取返回值 python3.8 多进程_传递参数

 

写法2

import time
from multiprocessing import Process


class MyProcess(Process):
    def __init__(self, name):  # 可以通过初始化来传递参数
        super(MyProcess, self).__init__()
        self.name = name

    def run(self):  # 必须有的函数
        print(f"{self.name}开始")
        time.sleep(0.2)
        print(f"{self.name}结束")


if __name__ == '__main__':
    p1 = MyProcess("进程1")  # 创建第一个进程,并传递参数
    p2 = MyProcess("进程2")  # 创建第二个进程,并传递参数
    p1.start()  # 开启第一个进程
    p2.start()  # 开启第二个进程
    print("主进程执行结束,子进程是依附于主进程存在的,所以,子进程都结束后,主进程才真正的结束。")

执行结果:

主进程执行结束,子进程是依附于主进程存在的,所以,子进程都结束后,主进程才真正的结束。

MyProcess-1开始

MyProcess-2开始

MyProcess-1结束

MyProcess-2结束

写类,继承Process,必须写run方法

 

进程与进程之间的关系,就相当于公司里的部门与部门之间的关系一样,数据是相互隔离的。