1. 程式人生 > >進程池中的回調函數

進程池中的回調函數

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()

進程池中的回調函數