from multiprocessing import Manager, Process
class Test():
def __init__(self,queue):
self.proc1 = Process(target =self.product1,args =(queue,))
self.proc2 = Process(target =self.product2,args =(queue,))
self.proc1.start()
self.proc2.start()
self.proc1.join()
self.proc2.join()
def product1(self,queue):
queue.put(1)
def product2(self,queue):
queue.put(2)
def product1(queue):
queue.put(1)
def product2(queue):
queue.put(2)
if __name__=="__main__":
queue = Manager().Queue(2)
one = Test(queue)
将实例方法传递到参数目标时,会出现一些pickle.PicklingError,EOFError和WindowsError错误。
如果将外部方法(product1,product2)传递给参数目标,则不会出错。
原因和区别是什么?
我的操作系统是Windows7。