Python之多进程编程7,multiprocessing的使用
1、multiprocess.Process
该方法为创建一个进程,在创建多个进程时系统默认进行并发操作
- 导入库
import multiprocessing
- 创建Process对象以及进程的启动
process=multiprocessing.Process(target=function,args=*)
process.start()
- 创建函数function
def onefunction(n):
print("进程开始")
time.sleep(n)
return n
- 主函数的编写
if __name__ == "__main__":
process = multiprocessing.Process(target=onefunction, args=(2,))
process.start()
a = time.time()
process.join()
print(f"进程结束,持续时间{time.time() - a}")
运行结果:
2、multiprocess.Pool(进程池)
multiprocess.Pool为进程池,和之前和线程池原理类似。将任务放至进程池之后,进程池会根据用户设置的进程数量进行调度
- 主函数的编写:
if __name__=="__main__"
pool = multiprocessing.Pool(3)
result = pool.apply_async(onefunction, args=(3,))
b=time.time()
# 进程池不再接受其他任务,不关闭则会返回线程池仍在运行的错误
pool.close()
# 等待该进程的所有线程完成
pool.join()
print(f"线程结束时间{time.time()-b}")
print("该函数的返回结果为:",result.get())
函数为第一节所使用的的函数onefunction()
运行结果:
总结:可以看出进程池可以得到返回的结果,而且不需要人为调度,使用起来相比Process这个进程方法简单