# import time # from multiprocessing import Pool # # def func(i): # time.sleep(1) # return i * i # # # if __name__ == ‘__main__‘: # pool = Pool(4) # # for i in range(10): # ret = pool.apply(func, args=(i, )) # 同步任务调用的任务的返回值,一个任务执行完后才能执行下一个任务,直接就是func的返回值 # print(ret) # 直接打印任务返回值的结果 # # import time # from multiprocessing import Pool # # def func(i): # time.sleep(1) # return i * i # # # if __name__ == ‘__main__‘: # pool = Pool(4) # # for i in range(10): # ret = pool.apply_async(func, args=(i, )) # 异步提交任务调用的任务的返回值,返回值得到的是一个任务的返回结果对象 # #print(ret) # 不调用get方法,直接打印的就是得到任务的返回结果对象 # print(ret.get()) # 调用返回结果的对象的get方法会同步阻塞等待每个任务执行结束后返回的结果 # # import time # from multiprocessing import Pool # # def func(i): # time.sleep(1) # return i * i # # # if __name__ == ‘__main__‘: # pool = Pool(4) # ret_l = [] # for i in range(10): # ret = pool.apply_async(func, args=(i, )) # 异步提交任务调用的任务的返回值,返回值得到的是一个任务的返回结果对象 # ret_l.append(ret) # # for ret in ret_l: # print(ret.get()) # 阻塞得到进程池中每个任务的返回值,先执行完的任务,则先得到执行完任务的返回值并打印出来 import time from multiprocessing import Pool def func(i): time.sleep(1) return i * i if __name__ == ‘__main__‘: pool = Pool(4) ret = pool.map(func, range(10)) # 异步执行10个任务,阻塞等待每个任务执行完毕将返回值返回放到了ret列表中 print(ret) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # 一次性打印出上面阻塞等待的10个任务的返回值
原文地址:https://www.cnblogs.com/whylinux/p/9833152.html
时间: 2024-11-07 22:06:16