# 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 timefrom multiprocessing import Pooldef func(i): time.sleep(1) return i * iif __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个任务的返回值