02-进程的创建-multiprocessing

目标

  • 知道使用 multiprocessing.Process 类能够创建进程对象
  • 能够 multiprocessing.Process 的 target 参数能够指定进程执行的任务函数

multiprocessing模块就是跨平台版本的多进程模块,提供了一个Process类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另外的事情

1. 创建子进程

import multiprocessing
import time

# 定义函数
def work1():
    for i in range(10):
        print("work1----", i)
        time.sleep(0.5)


if __name__ == '__main__':

    # 创建进程
    # 1. 导入 multiprocessing 模块
    # 2. multiprocessing.Process() 创建子进程
    # 3. start() 方法启动进程

    p1 = multiprocessing.Process(group=None, target=work1)
    p1.start()

    for i in range(10):
        print("这是主进程", i)
        time.sleep(0.5)

jincheng01-0543380

说明

  • 创建子进程跟创建线程十分类似,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动

  • Process语法结构如下:

Process([group [, target [, name [, args [, kwargs]]]]])

  • target:如果传递了函数的引用,这个子进程就执行这里(函数)的代码
  • args:给target指定的函数传递的参数,以元组的方式传递
  • kwargs:给target指定的函数传递命名参数
  • name:给进程设定一个名字,可以不设定
  • group:指定进程组,大多数情况下用不到

Process创建的实例对象的常用方法:

  • start():启动子进程实例(创建子进程)
  • is_alive():判断进程子进程是否还在活着
  • join([timeout]):是否等待子进程执行结束,或等待多少秒
  • terminate():不管任务是否完成,立即终止子进程

Process创建的实例对象的常用属性:

  • name:当前进程的别名,默认为Process-N,N为从1开始递增的整数
  • pid:当前进程的pid(进程号)