栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 多进程 简单使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 多进程 简单使用

函数方式–多进程示例
import multiprocessing as mp
import os, sys


# 含有参数的进程函数
def fun1(sec, name):
    print("1{}".format(sec))
    print("2{}".format(name))
    print(os.getppid(), "--", os.getpid())


# 含有参数的进程函数
def fun2(sec, name):
    # sys.exit("fun2 进程提前结束")
    print("3{}".format(sec))
    print("4{}".format(name))
    print(os.getppid(), "--", os.getpid())


# 含有参数的进程函数
def fun3(sec, name):
    print("5{}".format(sec))
    print("6{}".format(name))
    print(os.getppid(), "--", os.getpid())


if __name__ == '__main__':
    # 三个进程 为了等待子进程
    jobs = []  # 存放每个进程对象

    for i in [fun1, fun2, fun3]:
        # 两种传参方式:

        # 第一种
        # 元组位置传参    参数:daemon=True 子进程伴随父进程结束
        # p = mp.Process(target=i, args=(1, 2))  # daemon=True)  # 子进程伴随父进程结束

        # 第二种
        # 关键字传参
        p = mp.Process(target=i,
                       args=(1,),
                       kwargs={"name": 2},)  # daemon=True)  # 子进程伴随父进程结束

        # 将进程对象放入列表 为了等待子进程
        jobs.append(p)

        # 进程启动
        p.start()

    # 确保三个进程都结束  为了等待子进程
    for i in jobs:
        i.join()
    print("三个进程结束")
# p.join([timeout])
# 功能:阻塞等待子进程退出
# 参数:最长等待时间

# 获取进程号是需要将下面代码放入函数中
# os.getpid()
# 功能: 获取一个进程的PID值
# 返回值: 返回当前进程的PID

# os.getppid()
# 功能: 获取父进程的PID号
# 返回值: 返回父进程PID

# sys.exit(info)
# 功能:退出进程
# 参数:字符串
# 表示退出时打印内容
类方式–自定义进程类
from multiprocessing import Process
from time import sleep


class MyProcess(Process):
    def __init__(self, value):
        self.value = value
        super().__init__()  # 调用父类的init
        # 重写run 作为进程的执行内容

    def run(self):
        for i in range(self.value):
            sleep(2)
            print("自定义进程类。。。。")


if __name__ == '__main__':
    p = MyProcess(3)
    p.start()  # 将 run方法作为进程执行
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934558.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号