【发布时间】:2016-07-31 03:56:00
【问题描述】:
如果我的所有进程都是从不同的函数启动的,那么使用 concurrent.futures 没有问题。但是,如果我想用不同的参数调用同一个函数,我似乎无法获得正确的语法。这是我到目前为止得到的,但它不起作用:
tasks = ((serial_port_local, serial_options_local, serial_port_remote, serial_options_remote, "local"),
(serial_port_remote, serial_options_remote, serial_port_local, serial_options_local, "remote"))
for task in zip(tasks, executor.map(serial_cross_over, tasks)):
print (task)
这是错误,但我不明白:
TypeError: serial_cross_over() missing 4 required positional arguments: 'receive_serial_options', 'send_serial_port', 'send_serial_options', and 'source'
实际上,我完全不明白为什么它很复杂。我不应该只是能够做到吗:
executor.submit(some_function(parameter1))
executor.submit(some_function(parameter2))
但这不起作用。程序在第二次提交时挂起。为什么?
【问题讨论】:
标签: python concurrent-programming