進程池中的回調函數
阿新 • • 發佈:2018-10-23
pro bsp getpid ret col pri 並且 back pan
# 回調函數 # 指定一個任務後、並且指定一個回調函數後,當指定的進程池執行的任務結束後,會將該任務的返回值作為回調函數的參數傳遞到回調函數中,並且回調函數得以執行 # 回調函數在主進程中被執行 # import os # from multiprocessing import Pool # # # def func1(n): # print(‘in func1‘, os.getpid()) # return n * n # # def func2(nn): # print(‘in func2 %s ‘ % os.getpid()) # print(nn)# # if __name__ == ‘__main__‘: # pool = Pool(4) # pool.apply_async(func1, args=(10, ), callback=func2) # calback為回調參數,可以指定一個回調函數,這裏指定回調函數為func2 # pool.close() # pool.join() # print(os.getpid()) # 10個任務func1投入到含有4個進程的進程池中異步執行,並且指定回調函數為func2,當投入到進程池中的每個任務執行完後,都會將返回值作為參數返回給回調函數,並且回調函數在主進程得以執行# 執行了10次func1、10次func2 from multiprocessing import Pool def func1(n): print(‘in func1‘) return n * n def func2(nn): print(‘in func2‘) print(nn) if __name__ == ‘__main__‘: pool = Pool(4) for i in range(10): pool.apply_async(func1, args=(10, ), callback=func2) # calback為回調參數,可以指定一個回調函數,指定進程池執行的任務結束後,會將任務的返回值作為參數傳遞給回調函數,並執行回調函數,回調函數是在主進程中得以執行的pool.close() pool.join()
進程池中的回調函數