zoukankan      html  css  js  c++  java
  • python3 开启多进程的两种写法

    写法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是关键字参数

    写法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方法

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

  • 相关阅读:
    MySQL基础语句【学习笔记】
    减一技术应用:生成排列与幂集
    Java实现动态规划法求解0/1背包问题
    LODOP中ADD_PRINT_TABLE、HTM、HTML表格自动分页测试
    LODOP设置判断后执行哪个
    Lodop删除语句Deleted只能内嵌设计维护可用
    Lodop、c-lodop注册与角色简短问答
    LODOP暂存、应用、复原 按钮的区别
    JS判断语句 注意多句时加大括号 回调函数LODOP兼顾写法
    LODOP、C-Lodop简短排查语句
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/12051151.html
Copyright © 2011-2022 走看看