前言:
此时兄弟们对“python实现多进程”大体比较珍视,咱们都想要了解一些“python实现多进程”的相关内容。那么小编在网络上收集了一些对于“python实现多进程””的相关资讯,希望我们能喜欢,姐妹们快快来学习一下吧!Python包multiprocessing提供了进行多进程处理的API,可以进行本地和远程的并发操作。
multiprocessing模块采用了子进程的方式,能充分利用多CPU的处理能力。
multiprocessing模块通过Process类创建进程。
引入Process类
from multiprocessing import Process定义进程启动方法
定义函数,在该函数内编写希望进程执行的任务。
def work(msg): print(msg)创建进程
使用Process类创建进程,target指定进程启动的入口方法,args指定方法参数
p1 = Process(target=work, args=("process 1"))启动进程
调用Process的start方法启动进程。
p1.start()获取进程号
在子进程中可以通过os.getppid()获取父进程ID,通过os.getpid()获取子进程ID
import osimport timedef work(msg): print("parent pid:" + str(os.getppid())) print("my pid:" + str(os.getpid())) print(msg) time.sleep(10000)阻塞主进程
如果希望子进程执行完再结束主进程,可以通过join方法阻塞主进程。
p1.join()完整代码
from multiprocessing import Processimport osimport timedef work(msg): print("parent pid:" + str(os.getppid())) print("my pid:" + str(os.getpid())) print(msg) time.sleep(10000)if __name__ == '__main__': p1 = Process(target=work, args=('process 1',)) p1.start() p1.join() print("------------end------------------")Process类的函数和变量
函数或变量
说明
run()
代表进程的入口方法,直接调用run方法不会启动子进程,仍然是单进程处理。
start()
启动进程,会启动子进程,多进程处理。
join()
阻塞主进程,直到子进程执行完毕。
is_alive()
返回进程是否活动
terminate()
终止进程
kill()
终止进程,使用kill方式
close()
释放Process对象资源
name
进程名称
daemon
进程守护标志,当进程退出时,会尝试终止所有子进程
pid
进程ID
exitcode
退出代码
authkey
身份验证秘钥
sentinel
数字句柄
标签: #python实现多进程