在python里面要实现多核CPU并行,只能通过多进程方式实现。
本文主要介绍multiprocessing实现多进程的方式。
multiprocessing
from multiprocessing import Process
from time import sleep
def run_001(name):
print('run_001运行中, name = {}'.format(name))
sleep(2)
print('run_001执行结束')
if __name__ == '__main__':
p = Process(target=run_001, args=('test',))
print('开始执行子程序')
p.start()
print('主进程结束')
>>> 执行结果
开始执行子程序
主进程结束
run_001运行中, name = test
run_001执行结束
导入Process模块,p = Process(target=run_001, args=('test',))
创建一个Process实例,传入一个执行函数和函数的参数。p.start()
启动进程。
修改代码,加入p.join()
......
p = Process(target=run_001, args=('test',))
print('开始执行子程序')
p.start()
p.join()
print('主进程结束')
......
>>>执行结果
开始执行子程序
run_001运行中, name = test
run_001执行结束
主进程结束
可以看出加入p.join()
后,等待子进程结束后,才开始继续往下运行。
Process其他常用方法:
- is_alive():判断进程实例是否还在执行;
- join([timeout]):是否等待进程实例执行结束,或等待多少秒;
- start():启动进程实例(创建子进程);
- run():如果没有给定target参数,对这个对象调用start()方法时,就将执行对象中的run()方法;
- terminate():不管任务是否完成,立即终止;
- name:当前进程别名
- pid:当前进程的pid值
网友评论