假设我有一个在如下所示的多线程环境中调用的函数:
from multiprocessing.pool import Pool as _thread_pool
test_data = [('hi','bye')]
def print_data(arg,first=True):
if first:
print(arg[0])
else:
print(arg[1])
with _thread_pool(32) as pool:
pool.map(print_data,test_data)
现在说我的test_data不仅是1个元素,而且是数百万个元素,我想调用map函数以始终使用first=False
。是否有一种简单的方法,而无需在将{_1}}传递到pool.map之前在test_data中的每个元素中添加first=False
呢?
答案 0 :(得分:3)
使用functools.partial
创建另一个函数:
import functools
...
pool.map(functools.partial(print_data, first=False), test_data)