使用类实现
from multiprocessing import Pool
def add(x, y):
return x + y
class ResultHandler:
def __init__(self):
self.sequence = 0
def handler(self, result):
self.sequence += 1
print('[{}] Got:{}'.format(self.sequence, result))
p = Pool()
r = ResultHandler()
p.apply_async(add, (3, 4), callback=r.handler)
p.apply_async(add, ('hello', 'world'), callback=r.handler)
p.close()
p.join()
使用闭包方案,更简单
def make_handler():
sequence = 0
def handler(result):
nonlocal sequence
sequence += 1
print('[{}] Got: {}'.format(sequence, result))
return handler