如何最好地使用非并发期货?

问题描述 投票:0回答:0

在我的程序中

  1. 对象的创建成本很高,
  2. 后来修改昂贵,并且
  3. 最后,对象用于在代码的非常远的区域生成调试输出

我的主要目标是调试时只执行创建和修改。为了使代码更简洁,我想避免将相同的条件传递给所有三个地方,而是确保仅在使用对象时才创建和修改该对象(而不是在应该使用它的时候,因为这会为代码腐烂)。

这样做的一种方法是使用

concurrent.futures
。然而,这伴随着创建线程/进程的开销,即使不调试也必须支付。我想避免这种情况(我可以忍受没有加速的好处,因为我只会在调试时受益,即当对速度的期望无论如何都放松时)。

我的想法是使用“非并发未来”,这在创建和修改上几乎没有开销,只有在实际使用时才会花费。从

SynchronousExecuter
推导出
concurrent.futures.Executor
会相对简单 - 那会是我最好的选择吗?

我能看到的唯一选择是使用生成器,但这变得笨拙了。因为它们针对的是我需要单个对象和 b 的序列。因为稍后修改了对象。

python concurrent.futures
© www.soinside.com 2019 - 2024. All rights reserved.