114得票4回答
ThreadPoolExecutor().map和ThreadPoolExecutor().submit有什么不同?

我刚写的一些代码让我感到非常困惑。出乎意料的是,我发现:with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor: results = list(executor.map(f, iterable)) 和w...

95得票6回答
如何在concurrent.futures中使用tqdm?

我有一个多线程函数,我想使用tqdm来显示状态栏。是否有一种简单的方法可以在ThreadPoolExecutor中显示状态栏呢?让我感到困惑的是它的并行化部分。import concurrent.futures def f(x): return f**2 my_iter = ran...

66得票4回答
一旦期货交易开始,如何终止它们?

我正在使用新的 concurrent.futures 模块(也有 Python 2 的移植版)来进行一些简单的多线程 I/O。我在理解如何干净地终止使用该模块启动的任务方面遇到了问题。 请查看以下 Python 2/3 脚本,它重现了我所见到的行为:#!/usr/bin/env python...

61得票2回答
concurrent.futures和asyncio.futures有什么区别?

为了解释这个问题的原因: 使用名称相同的两个模块会让人感到困惑,它们代表什么使它们不同? 其中一个可以解决什么任务而另一个不能,反之亦然?

53得票1回答
concurrent.futures中的ProcessPoolExecutor比multiprocessing.Pool慢得多

我正在尝试使用Python 3.2中引入的新模块concurrent.futures进行实验,并且注意到,几乎相同的代码,使用multiprocessing.Pool比使用concurrent.futures中的Pool慢得多。以下是使用multiprocessing的版本: def har...

37得票1回答
使用concurrent.futures中的ThreadPoolExecutor时,max_workers的数量是多少?

在决定从concurrent.futures中的ThreadPoolExecutor设置max_workers时需要考虑哪些因素? 只要您可以预期Python 3.5+可用,是否有任何理由不将max_workers设置为None,这将使其“默认为机器上处理器的数量乘以5”,如此处所述? ht...

37得票1回答
concurrent.futures.as_completed是如何工作的?

我正在学习Python并发编程,接触到了Future的概念。我看到as_completed()需要一个Future可迭代对象,然后它会在任务完成时将其作为生成器产出。 我想知道它内部是如何工作的。它是否立即产生已完成的任务(Future)?一个朴素的做法是迭代所有Future并使用done(...

37得票2回答
寻找Python中concurrent.futures中BrokenProcessPool的原因

简而言之 使用concurrent.futures并行编程时,我遇到了一个BrokenProcessPool异常。没有显示进一步的错误信息。我想找出错误的原因,并请教如何解决。 完整问题 我正在使用concurrent.futures来并行化一些代码。with ProcessPoolExecu...

35得票2回答
Python concurrent.futures.ProcessPoolExecutor:.submit()和.map()的性能比较

我正在使用concurrent.futures.ProcessPoolExecutor来在一个数字范围内查找一个数字的出现次数。我的目的是探究并发性能带来的加速效果。为了测试性能,我有一个控制组——一个串行代码来执行这个任务(如下所示)。我编写了两个并发代码,一个是使用concurrent.f...

32得票2回答
线程池执行器中的工作线程并不是真正的守护线程。

我无法理解的是,虽然 ThreadPoolExecutor 使用了守护线程,但即使主线程退出,工作线程仍将继续运行。 我可以提供一个Python3.6.4的最小示例: import concurrent.futures import time def fn(): while T...