这花了我整晚的时间来调试我的代码,最后我发现这个棘手的问题。请看下面的代码。python多处理中的回调函数是如何工作的map_async
from multiprocessing import Pool
def myfunc(x):
return [i for i in range(x)]
pool=Pool()
A=[]
r = pool.map_async(myfunc, (1,2), callback=A.extend)
r.wait()
我想我会得到A=[0,0,1]
,但输出A=[[0],[0,1]]
。这对我没有意义,因为如果我有A=[]
,A.extend([0])
和A.extend([0,1])
会给我A=[0,0,1]
。回调可能以不同的方式工作。所以我的问题是如何获得A=[0,0,1]
而不是[[0],[0,1]]
?提前感谢您的任何意见。
您使用的是什么操作系统和python版本? –