【发布时间】:2015-02-25 16:42:41
【问题描述】:
有时我需要对不带参数的函数使用多处理。我希望我能做这样的事情:
from multiprocessing import Pool
def f(): # no argument
return 1
# TypeError: f() takes no arguments (1 given)
print Pool(2).map(f, range(10))
我可以使用Process(target=f, args=()),但我更喜欢map / imap / imap_unordered 的语法。有没有办法做到这一点?
【问题讨论】:
-
您愿意重新定义
f以接受一个论点并忽略它吗? -
@inspectorG4dget:不,我宁愿避免
-
我感觉这是XY problem。那么,让我们退后一步:您实际上想要做什么,您尝试使用此功能是为了什么?
-
map的语义意味着您将一个函数映射到一个输入序列,这就是您所得到的。无论您决定忽略该参数,还是创建一个由您决定的包装函数。 -
@inspectorG4dget:一个例子是对数据库或 API 进行压力测试。我需要生成 N 个相同的进程来重复发送请求。
标签: python python-multiprocessing