python processpoolexecutor_Python线程和进程池并行编程

Python 3.2版本之后发布了concurrent.futures模块,用以支持和管理并发编程,内容涵盖了进程和线程池(Thread and Process Pooling)、非确定性执行流(Nondeterministic Execution Flows)以及进程和线程同步。

本文通过将带有可选参数的任务提交(Submit)给执行器(Executor)来实例化futures对象。执行器是线程或者进程执行池访问的父类,线程或者进程实例的使用比较耗费资源,因此需要尽可能的重复利用资源,提升整体性能。为此Python提供了concurrent.futures模块实现池(Pooling)的概念,并提供了如下的类:concurrent.futures.Executor- 用于异步执行调用;

Submit(function, argument) - 调度一个函数的执行

map(function, argument) - 异步方式执行函数

shutdown(Wait = True) - 通知执行器(Executor)释放资源

concurrent.futures.Future - 封装了回调函数的异步执行

如何处理线程或者进程池

线程或进程池(也称为池)表示用于优化和简化程序中线程和/或进程资源管理的软件管理器。通过池化,可以向池中提交要执行的任务。池配备了一个挂起任务的内部队列,以及执行这些任务的多个线程或进程。池中一个重要的概念是重用。线程或进程在其生命周期中多次用于不同的任务。它减少了创建和提高利用池的程序性能的开销。

Executor的子类

重用是致程序员使用池的主要原因之一。concurrent.futures模块提供了executor类的两个子类,它们分别异步操作线程池和进程池。这两个子类如下所示:concurrent.future

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值