multiprocessingのPool.map()機能を使用して、作業を同時に分割しようとしています。次のコードを使用すると、正常に動作します。
import multiprocessing
def f(x):
    return x*x
def go():
    pool = multiprocessing.Pool(processes=4)        
    print pool.map(f, range(10))
if __name__== '__main__' :
    go()ただし、よりオブジェクト指向のアプローチで使用すると、機能しません。表示されるエラーメッセージは次のとおりです。
PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup
__builtin__.instancemethod failedこれは、以下が私のメインプログラムである場合に発生します。
import someClass
if __name__== '__main__' :
    sc = someClass.someClass()
    sc.go()そして以下は私のsomeClassクラスです:
import multiprocessing
class 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))誰もが問題が何であるか、またはそれを簡単に回避する方法を知っていますか?
PicklingError: Can't pickle <class 'function'>: attribute lookup builtins.function failed