if __name__=='__main__':
print('Parent process %s.' % os.getpid())#用来获取主进程的进程ID
p = Process(target=run_proc, args=('test',))#实例化进程p,调用run_proc函数,传入参数对象args
print('Child process will start.')
p.start()#进程准备就绪
p.join()#待所有进程执行完毕以后执行后续操作
print('Child process end.')
运行结果如下:
Process (876) start...
I (876) just created a child process (877).
I am child process (877) and my parent is 876.
一个子进程其实就和我们平常调用单一函数是一样的。
4.1.3建立多个子进程
建立多个子进程(即多进程),其实就是多个函数随机同步运行。
建立多进程有两种方法,一种是直接利用Process来建立多个子进程即可,如下:
from multiprocessing import Process
import random,time
if __name__ == "__main__":
func_list=[do_task,write_task]
args_list=["PPT","Sql"]
pool=multiprocessing.Pool(2)
for func,args in function_list,args_list:
pool.apply_async(func,arg)
print 'Waiting for all subprocesses done...'
pool.close()
pool.join() #调用join之前,一定要先调用close() 函数,否则会出错
print 'All subprocesses done.'
输出结果如下:
Waiting for all subprocesses done...
我正在做PPT
我正在写Sql
All subprocesses done.