错误原因:使用队列错误(Queue.Queue()不能用于进程间通信)
当子进程执行的方法定义在类中时会报错:PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup __builtin__.instancemethod failed
def main():
manager = multiprocessing.Manager()
queue = manager.Queue()
state_queue = manager.Queue(maxsize=1)
pool = Pool()
state_queue.put({})
A = CreateIndex(queue,state_queue)
A.run()
state_list = []
for i in range(5):
try:
result = pool.apply_async(testRun, args = (queue,state_queue))
state_list.append(result)
except:
errmsg = get_err_msg()
log.root.error(errmsg)
pool.close()
pool.join()
if result.successful():
print 'successful'