multiprocessing模块

执行步骤;

  1. 需要将要做的事情封装成函数
  2. 使用multiprocessing提供的类Process创建进程对象
  3. 通过进程对象和Process初始化进程进行进程的设置,绑定函数
  4. 启动进程,会自动执行绑定的函数
  5. 完成进程的回收

函数:

  Process()
    功能: 创建进程对象
    参数: target : 要绑定的函数
    name : 给进程起的名称 (默认Process-1)
    args: 元组 用来给target函数位置传参
    kwargs : 字典 用来给target函数键值传参

  p.start()
    功能 : 启动进程
    * 自动运行terget绑定函数。此时进程才真正的被创建

  p.join([timeout])
    功能: 阻塞等待子进程退出
    参数: 超时时间

multiprocessing创建进程的特性:

  * 使用multiprocessing创建进程子进程同样复制父进程的全部内存空间,之后有自己独立的空间,执行上互不干扰
  * 子进程也是有自己特有的PID等资源
  * 如果不使用join回收可能会产生僵尸进程
  * 使用multiprocessing创建子进程,一般父进程功能就是创建子进程回收子进程,所有事件交给子进程完成

代码示例from multiprocessing import Processfrom time import sleep

import os

def th1():
    sleep(3)
    print("chifan")
    print(os.getppid(),"-----",os.getpid())
def th2():
    sleep(2)
    print("shuijiao")
    print(os.getppid(),"-----",os.getpid())
def th3():
    sleep(4)
    print("dadoudou")
    print(os.getppid(),"-----",os.getpid())

things= [th1,th2,th3]
process = []
for th in things:
    p = Process(target = th)
    process.append(p)
    p.start()
#循环回收进程
for i in process:
    i.join()

 

posted on 2018-09-11 23:08  zengsf  阅读(141)  评论(0编辑  收藏  举报

导航