码迷,mamicode.com
首页 > 其他好文 > 详细

multiprocessing模块

时间:2018-09-11 23:55:11      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:时间   复制   进程   循环   end   out   函数   def   就是   

执行步骤;

  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()

 

multiprocessing模块

标签:时间   复制   进程   循环   end   out   函数   def   就是   

原文地址:https://www.cnblogs.com/zengsf/p/9631597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!