这篇文章给大家介绍怎么在Python中利用过程创建进程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Python多处理模块提供了流程类,该类可用来在Windows平台上创建新进程。和使用线程类创建多线程方法类似,使用过程类创建多进程也有以下2种方式:
直接创建过程类的实例对象,由此就可以创建一个新的进程;
通过继承过程类的子类,创建实例对象,也可以创建新的进程。注意,继承过程类的子类需重写父类的运行()方法。
不仅如此,过程类中也提供了一些常用的属性和方法,如表1所示。
属性名或方法名功能运行()第2种创建进程的方式需要用的到,继承类中需要对方法进行重写,该方法中包含的是新进程要执行的代码.start()和启动子线程一样,新创建的进程也需要手动启动,该方法的功能就是启动新创建的线程. join((超时))和线程类加入()方法的用法类似,其功能是在多进程执行过程,其他进程必须等到调用加入()方法的进程执行完毕(或者执行规定的超时时间)后,才能继续执行;is_alive()判断当前进程是否还活着.terminate()中断该进程. name属性可以为该进程重命的名,也可以获得该进程的名称.daemon和守护线程类似,通过设置该属性为真,可将新建进程设置为“守护进程”.pid返回进程的ID号。大多数操作系统都会为每个进程配备唯一的ID号。表1 Python类过程常用属性和方法
接下来将一一对创建进程的2种方法做详细的讲解。
通过过程类创建进程
和使用线程类创建子线程的方式非常类似,使用过程类创建实例化对象,其本质是调用该类的构造方法创建新进程.Process类的构造方法格式如下:
def __init__(自我、组=没有目标=None, name=None, arg游戏=(),kwargs={})
其中,各个参数的含义为:
- <李>
组:该参数未进行实现,不需要传参;
李> <李>目标:为新建进程指定执行任务,也就是指定一个函数;
李> <李>名称:为新建进程设置名称;
李> <李>参数:为目标参数指定的参数传递非关键字参数;
李> <李>kwargs:为目标参数指定的参数传递关键字参数。
李>下面程序演示了如何用过程类创建新进程。
得到multiprocessing import 过程 import 操作系统 print(“当前进程ID:“, os.getpid ()) #,定义一个函数,准备作为新进程的,target 参数 def 行动(名称、*添加): ,打印(名字) ,for arc 拷贝;添加: 打印才能(“% s ——当前进程% d", %,(弧,os.getpid ())) if __name__==& # 39; __main__ # 39;: ,#定义为进程方法传入的参数 ,my_tuple =, (“http://jb51.net/python/" \ ,才能“http://jb51.net/shell/" \ ,,,“http://jb51.net/java/"。) ,#创建子进程,执行,行动(),函数=,my_process 过程(=target 行动,,args =, (“my_process进程“,* my_tuple)) ,#启动子进程 ,my_process.start () ,#主进程执行该函数 ,行动(“主进程“,* my_tuple)
程序执行结果为:
引用>
当前进程ID: 12980
主进程
http://jb51.net/python/鼻敖?2980
http://jb51.net/shell/鼻敖?2980
http://jb51.net/java/鼻敖?2980
当前进程ID: 12860
my_process进程
http://jb51.net/python/鼻敖?2860
http://jb51.net/shell/鼻敖?2860
http://jb51.net/java/鼻敖?2860需要说明的是,通过多处理。过程来创建并启动进程时,程序必须先判断if __name__==& # 39; __main__ # 39;:,否则运行该程序会引发异常。
此程序中有2个进程,分别为主进程和我们创建的新进程,主进程会执行整个程序,而子进程不会执行if __name__==& # 39; __main__ # 39;中包含的程序,而是先执行此判断语句之外的所有可执行程序,然后再执行我们分配让它的任务(也就是通过目标参数指定的函数)。
通过过程继承类创建进程
和使用子线程类创建线程的方式类似,除了直接使用过程类创建进程,还可以通过创建过程的子类来创建进程。
需要注意的是,在创建过程的子类时,需在子类内容重写运行()方法。实际上,该方法所起到的作用,就如同第一种创建方式中目标参数执行的函数。
另外,通过过程子类创建进程,和使用过程类一样,先创建该类的实例对象,然后调用开始()方法启动该进程。下面程序演示如何通过子过程类创建一个进程。
怎么在Python中利用过程创建进程