标签:时间 复制 进程 循环 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()
标签:时间 复制 进程 循环 end out 函数 def 就是
原文地址:https://www.cnblogs.com/zengsf/p/9631597.html