Python之多进程编程7,multiprocessing的使用

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这个进程方法简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值