Concurrent.futures:map()与submit()的用例是什么?

Tim*_*oks 5 python concurrency python-3.x

我正在研究 Python并发.futures 模块并使用它来更加熟悉并行/并发编程模型。不幸的是,由于它是一个相对较新的模块,我找不到大量面向初学者的文献。

我知道 map() 返回通过进程或线程在可迭代对象上调用的函数的直接返回值。Submit() 返回一个 futures 对象。

我想更多地解释为什么人们会选择使用其中之一。看起来 map() 更适合不需要协调的明显并行任务。对于复杂的并发用例,submit() 可能更有用。不过,我对此还很陌生,希望有更多知识渊博的人可以扩展。

谢谢。

jef*_*upp 3

map用于对一个或多个可迭代对象调用单个函数。submit用于Future为单个函数调用及其关联参数生成对象。

可以将其视为concurrent.map内置函数的并行版本mapsubmit用于生成未来。