• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    总结python多进程multiprocessing的相关知识

    multiprocessing多进程

    概念

    创建多进程基本流程

    创建进程对象

    启动进程 回收进程

    代码:

    import multiprocessing as mp
    from time import sleep
    
    # 进程执行函数
    def fun():
        print("开始一个进程")
        sleep(3)
        print("进程结束")
    
    # 创建进程对象
    p = mp.Process(target = fun)
    
    p.start()   # 启动进程
    
    p.join()    # 回收进程
    

    运行结果:

    开始一个进程
    进程结束
    Process finished with exit code 0

    1 、父子进程是并行执行的 子进程执行函数 父进程执行除子进程外内容:

    import multiprocessing as mp
    from time import sleep
    
    # 进程执行函数
    def fun():
        print("开始一个进程")
        sleep(3)
        print("进程结束")
    
    # 创建进程对象
    p = mp.Process(target = fun)    # 把fun函数作为独立子进程 其它函数由进程来执行
    
    p.start()   # 启动进程
    
    sleep(2)
    print("父进程执行内容")
    
    p.join()    # 回收进程
    print("===============")
    """
    pid = os.fork
    if pid == 0
        fun()
        os._exit(0)
    else:
        os.wait()
    """
    

    运行结果:

    开始一个进程
    父进程执行内容
    进程结束

    ===============

    2、子进程不能改变父进程中变量的值
    代码:

    import multiprocessing as mp
    from time import sleep
    
    a = 1
    
    # 进程执行函数
    def fun():
        print("开始一个进程")
        sleep(3)
        global a
        print("a=", a)
        a = 1000
        print("a=", a)
        print("进程结束")
    
    # 创建进程对象
    p = mp.Process(target = fun)    # 把fun函数作为独立子进程 其它函数由进程来执行
    
    p.start()   # 启动进程
    
    sleep(2)
    print("父进程执行内容")
    
    p.join()    # 回收进程
    print("===============")
    print("a=", a)
    

    运行结果:

    开始一个进程
    父进程执行内容
    a= 1
    a= 1000
    进程结束
    a= 1

    创建多个进程
    代码:

    """
    创建多个进程
    """
    
    from multiprocessing import Process
    import os
    from time import sleep
    
    def fun1():
        sleep(2)
        print(os.getppid(), '--', os.getpid(), "吃饭")
    
    def fun2():
        sleep(3)
        print(os.getppid(), '--', os.getpid(), "睡觉")
    
    def fun3():
        sleep(4)
        print(os.getppid(), '--', os.getpid(), "学习")
    
    jobs =[]
    
    for th in [fun1, fun2, fun3]:
        p = Process(target = th)
        jobs.append(p)
        p.start()
    
    for i in jobs:
        i.join()
    

    运行结果:

    46013 – 46022 吃饭
    46013 – 46023 睡觉
    46013 – 46024 学习

    含有参数的进程函数
    代码:

    from multiprocessing import Process
    from time import sleep
    
    # 含有参数的进程函数
    def worker(sec, name):
        for i in range(3):
            sleep(sec)
            print("I'm %s"%name)
            print("I'm working...")
    
    # p = Process(target = worker, args = (2, "Tom"))
    p = Process(target = worker, kwargs = {'name':'tom', 'sec': 2})
    
    p.start()
    p.join()
    

    运行结果:

    I'm tom
    I'm working…
    I'm tom
    I'm working…
    I'm tom
    I'm working…

    案例练习

    代码:

    from multiprocessing import Process
    import os
    
    filename = './dace.jpg'
    size = os.path.getsize(filename)
    
    # 复制上半部分
    def up():
        fr = open(filename, 'rb')
        fw = open('bot,jpg', 'wb')
        n = size//2
        fw.write(fr.read(n))
        fw.close()
        fr.close()
    
    # 复制下半部分
    def down():
        fr = open(filename, 'rb')
        fw = open('bot,jpg', 'wb')
        fr.seek(size//2.0)
        fw.write(fr.read())
        fw.close()
        fr.close()
    
    p = Process(target = up)
    q = Process(target = down)
    p.start()
    q.start()
    p.join()
    q.join()
    

    到此这篇关于总结python多进程multiprocessing的相关知识的文章就介绍到这了,更多相关python multiprocessing多进程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 分析详解python多线程与多进程区别
    • 手把手带你了解python多进程,多线程
    • Python多进程共享numpy 数组的方法
    • Python多线程与多进程相关知识总结
    • python实现多进程并发控制Semaphore与互斥锁LOCK
    • python 多进程和多线程使用详解
    • python 实现多进程日志轮转ConcurrentLogHandler
    • Python多进程与多线程的使用场景详解
    • python多进程执行方法apply_async使用说明
    • Python 多进程原理及实现
    • python多线程和多进程关系详解
    • Python多进程的使用详情
    上一篇:python 字典和列表嵌套用法详解
    下一篇:Python快速实现一键抠图功能的全过程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    总结python多进程multiprocessing的相关知识 总结,python,多,进程,multiprocessing,