我们已经了解了,运行中的程
序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快。以我们之前所学的知识,并不能实现创建进程这个功能,所以我们就需要借助python中强大的模块。
目录
在一个python进程中开启子进程,start方法和并发效果
一. multiprocess模块
process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建。
代码:
Process([group [, target [, name [, args [, kwargs]]]]])
- 由该类实例化得到的对象,表示一个子进程中的任务(尚未启动)
- 需要使用关键字的方式来指定参数
- args指定的为传给target函数的位置参数,是一个元组形式,必须有逗号
- group参数未使用,值始终为None
- target表示调用对象,即子进程要执行的任务
- kwargs表示调用对象的字典,kwargs={'name':'egon','age':18}
- args表示调用对象的位置参数元组,args=(1,2,'egon',)
- name为子进程的名称
方法介绍:
- p.start():启动进程,并调用该子进程中的p.run()
- p.run():进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类的类中一定要实现该方法
- p.terminate():强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,(使用该方法需要特别小心这种情况。如果p还保存了一个锁那么也将不会被释放,进而导致死锁 )
- p.is_alive():如果p仍然运行,返回True
- p.join([timeout]):主线程等待p终止(强调&#