multiprocess模块
一. Process模块介绍
  1. 直接使用Process模块创建进程
    (1)主进程和子进程
    (2)if __name__ == "__main__"语句
  2. Process模块参数介绍
    函数传参的两种方式
  3. Process模块方法介绍
    (1)join方法的使用
    (2)for循环开启多个进程
  4. Process模块属性介绍
  5. 在windows中必须把Process()放到if __name__ == "__main__"语句下
二. Process类的使用
  1. 继承的形式创建进程
  2. 进程的内存空间是隔离的
  3. Process对象的其他方法或属性
    terminate, is_alive, 显示进程名和id
  4. 子进程中不能有input
  5. 僵尸进程和孤儿进程
三. 守护进程

 

 

参考文档一

参考文档二

仔细说来,multiprocess不是一个模块而是python中一个操作、管理进程的包。 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含了和进程有关的所有子模块。由于提供的子模块非常多,为了方便大家归类记忆,我将这部分大致分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享。重点强调:进程没有任何共享状态,进程修改的数据,改动仅限于该进程内,但是通过一些特殊的方法,可以实现进程之间数据的共享。

 

一. Process模块介绍

1. 直接使用Process模块创建进程

Process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建.

Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得到的对象,表示一个子进程中的任务(尚未启动)

强调:
1. 需要使用关键字的方式来指定参数
2. args指定的为传给target函数的位置参数,是一个元组形式,必须有逗号

 

举例说明:

# 当前文件名称为test.py
# 引入Process模块
from multiprocessing import Process

def func():
    print("子进程正在运行")

if __name__ == '__main__':
    """由于系统创建进程机制的原因,windows下必须
    写if __name__ == '__main__'语句"""
    p = Process(target=func,)
    """这一步骤将函数注册到一个进程中,p是一个进程对象,
    此时还没有启动进程,只是创建了一个进程对象.
    这里的func是不加括号的,因为加上括号函数就直接运行了"""
    p.start()
    """这一步骤告诉操作系统,给我开启一个进程,此时func函数
    就被我们新开启的这个进程执行了,而这个进程是我主进程运
    行过程中创建出来的,所以这个新创建的进程为主进程的子进程,
    主进程又可以称为这个新进程的父进程"""
    print("主进程执行完毕")
    """这是主进程的程序,上面开启的子进程的程序是和主进程的
    程序同时运行的,我们称为异步"""
举例说明

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2021-08-14
猜你喜欢
  • 2021-12-06
  • 2021-07-03
  • 2021-08-18
  • 2021-07-12
  • 2022-12-23
  • 2021-12-08
  • 2022-01-29
相关资源
相似解决方案