使用多處理Pool.map()時不能class=‘class 3’>選擇我試著用multiprocessing氏Pool.map()功能同時分工。當(dāng)我使用以下代碼時,它工作得很好:import multiprocessingdef f(x):
return x*xdef go():
pool = multiprocessing.Pool(processes=4)
print pool.map(f, range(10))if __name__== '__main__' :
go()然而,當(dāng)我在一種更面向?qū)ο蟮姆椒ㄖ惺褂盟鼤r,它就不起作用了。它給出的錯誤消息是:PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup
__builtin__.instancemethod failed當(dāng)以下是我的主程序時,就會發(fā)生這種情況:import someClassif __name__== '__main__' :
sc = someClass.someClass()
sc.go()以下是我的someClass班級:import multiprocessingclass someClass(object):
def __init__(self):
pass
def f(self, x):
return x*x def go(self):
pool = multiprocessing.Pool(processes=4)
print pool.map(self.f, range(10))誰知道問題可能是什么,或者是一個簡單的解決方法?
3 回答

一只斗牛犬
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個贊
__call__()
someClass()
someClass.go()
someClass()
添加回答
舉報(bào)
0/150
提交
取消