如何转换为多线程子进程
How to convert to multithreading subprocess
我的 python (2.7.6) 代码中有一个方法,我希望按照 another SO question
中给出的建议使用多线程子进程
目前代码是这样的:
return self.capi(roi_rgb,"",False)
我是这样转换的:
pool = multiprocessing.Pool(None)
result = ""
r = pool.map_async(self.capi(roi_rgb,"",False), callback=result)
r.wait()
return result
但我在调用 pool.map_async
时遇到上述错误
TypeError: map_async() takes at least 3 arguments (3 given)
根据 https://docs.python.org/2/library/multiprocessing.html 你需要至少给出 2 个位置参数,而你给它一个位置参数和一个关键字参数。 (第三个隐式参数是 self)
因此您需要向该方法传递一个函数和一个可迭代对象以及回调。
P.s.that 是一个非常无用的错误消息,不是吗?
我的 python (2.7.6) 代码中有一个方法,我希望按照 another SO question
中给出的建议使用多线程子进程目前代码是这样的:
return self.capi(roi_rgb,"",False)
我是这样转换的:
pool = multiprocessing.Pool(None)
result = ""
r = pool.map_async(self.capi(roi_rgb,"",False), callback=result)
r.wait()
return result
但我在调用 pool.map_async
TypeError: map_async() takes at least 3 arguments (3 given)
根据 https://docs.python.org/2/library/multiprocessing.html 你需要至少给出 2 个位置参数,而你给它一个位置参数和一个关键字参数。 (第三个隐式参数是 self)
因此您需要向该方法传递一个函数和一个可迭代对象以及回调。
P.s.that 是一个非常无用的错误消息,不是吗?