python的进程池map函数_进程池 - Python并发编程教程™

进程池可以像创建和使用线程池一样创建和使用。 进程池可以被定义为一组预先实例化和空闲的进程,它们随时可以开始工作。 当我们需要执行大量任务时,创建进程池优于为每个任务实例化新进程。

Python模块 - Concurrent.futures

Python标准库有一个叫做concurrent.futures的模块。 这个模块是在Python 3.2中添加的,为开发人员提供了启动异步任务的高级接口。 它是Python的线程和多处理模块的顶层的一个抽象层,用于提供使用线程或进程池运行任务的接口。

在后面的章节中,我们将要学习concurrent.futures模块的不同子类。

执行者类

Executor是 Python concurrent.futures模块的抽象类。 它不能直接使用,我们需要使用以下具体子类之一 -

ThreadPoolExecutor

ProcessPoolExecutor

ProcessPoolExecutor - 一个具体的子类

它是Executor类的具体子类之一。 它使用多重处理,并且我们获得提交任务的过程池。 此池将任务分配给可用的进程并安排它们运行。

如何创建一个ProcessPoolExecutor?

通过concurrent.futures模块及其具体子类Executor的帮助,可以轻松创建一个过程池。 为此,需要构建一个ProcessPoolExecutor,其中包含需要的池中的进程数。 默认情况下,数字为5。然后将任务提交到进程池。

示例

现在将考虑创建线程池时使用的相同示例,唯一的区别是现在将使用ProcessPoolExecutor而不是ThreadPoolExecutor。

from concurrent.futures import ProcessPoolExecutor

from time import sleep

def task(message):

sleep(2)

return message

def main():

executor = ProcessPoolExecutor(5)

future = executor.submit(task, ("Completed"))

print(future.done())

sleep(2)

print(future.done())

print(future.result())

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值