1.问题描述
有的人像将函数执行结果的值,通过回调函数来处理
2.解决方案
举例 多线程回调函数的使用
from multiprocessing import Pool
class ResultHandler:
def __init__(self):
#记录每次函数执行的次数
self.sequence = 0
def ResultShow(self,result):
self.sequence = self.sequence+1
print('[{}]--> GO:{}'.format(self.sequence,result))
def addNum(x,y):
return x+y
if __name__ == '__main__':
r = ResultHandler()
#生成线程池
pool = Pool(processes=4)
'''
addNum 函数接受参数,执行结果值作为回调函数 r.ResultShow 的参数,通过回调函数的执行来获取函数的结果
代码展示如下
'''
pool.apply_async(addNum,(3,65),callback=r.ResultShow)
pool.apply_async(addNum,('num four ',' result show '),callback=r.ResultShow)
#等待线程执行完毕
rest = input("wait the result show then enter\n")