码迷,mamicode.com
首页 > 系统相关 > 详细

进程池的返回值

时间:2018-10-22 22:15:47      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:返回结果   multi   pool   结束   end   异步执行   class   div   bsp   

# 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个任务的返回值

 

进程池的返回值

标签:返回结果   multi   pool   结束   end   异步执行   class   div   bsp   

原文地址:https://www.cnblogs.com/whylinux/p/9833152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!