python 获取多线程的返回值

第一种写法:

from concurrent.futures import ThreadPoolExecutor
from threading import Thread


def a(x):
    return x + 1


if __name__ == '__main__':
    pool = ThreadPoolExecutor(max_workers=10)
    li = []
    for i in range(1, 51):
        li.append(pool.submit(a, i))

    for l in li:
        print(l.result())

    # 关闭线程池
    pool.shutdown()

第二种写法:

使用python自带的线程池

import os
from multiprocessing.pool import ThreadPool


def a(x):
    print(f"Process Id:{os.getpid()} res:{x+1}", )
    return x + 1


if __name__ == '__main__':
    pool = ThreadPool(processes=10)

    li = []
    for i in range(1, 51):
        li.append(pool.apply_async(a, args=(i,)))

    for p in li:
        print(p.get())

    pool.close()


本文地址: http://chenxm.cc/article/1338.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
上一篇: layui 点击图片放大
下一篇: python 正则提取网址中图片名字
发表评论

还没有留言,还不快点抢沙发?