Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Pool.map中使用生成器作为iterable是否合理_Python_Python 3.x_Multiprocessing_Python Multiprocessing - Fatal编程技术网

Python 在Pool.map中使用生成器作为iterable是否合理

Python 在Pool.map中使用生成器作为iterable是否合理,python,python-3.x,multiprocessing,python-multiprocessing,Python,Python 3.x,Multiprocessing,Python Multiprocessing,Pool.map要求callable作为其第一个参数,iterable作为其第二个参数(请参阅) 它将iterable拆分成块,并将它们传递给池中的工作人员 如果iterable本身是一个生成器,这可能吗?或者它必须是一个序列(列表、np.array等)一个生成器工作得很好,但是如果工作被急切地分派,那么它必须以这样或那样的方式有效地实现整个生成器才能真正完成工作。事实上,在它真正开始分派工作之前,传递生成器只意味着在它被迫在内存中实现生成器之前有一点延迟 如果您想避免这种情况,请使用imap或

Pool.map要求callable作为其第一个参数,iterable作为其第二个参数(请参阅)

它将iterable拆分成块,并将它们传递给池中的工作人员


如果iterable本身是一个生成器,这可能吗?或者它必须是一个序列(列表、np.array等)

一个生成器工作得很好,但是如果工作被急切地分派,那么它必须以这样或那样的方式有效地实现整个生成器才能真正完成工作。事实上,在它真正开始分派工作之前,传递生成器只意味着在它被迫在内存中实现生成器之前有一点延迟


如果您想避免这种情况,请使用
imap
imap\u unordered
,这两种方法都会发送“live”(尽管目前它们都是,因此您可能会一次实现大部分生成器,如果不是全部的话)。

提示:尝试一下,然后找出答案;-)剧透警报:你可以。你可以,但无论如何它都会变成一个列表。