[Python]异步concurrent.futures并发

发布时间 2023-03-31 09:30:42作者: LeoShi2020
'''
concurrent.futures 模块提供异步执行可调用对象高层接口,使用线程池 ThreadPoolExecutor 或
进程池 ProcessPoolExecutor 来实现异步。目的是保证服务稳定运行的前提下提供最大的并发能力。
'''

from concurrent.futures import Future
from concurrent.futures import ThreadPoolExecutor
import time



def task(a, b):
    time.sleep(2)

    return a + b


def callback(f: Future):
    print(f.result())


pool = ThreadPoolExecutor(5)
print("开始了")
for i in range(5):
    # 生成一个线程池,大小为5
    pool.submit(task, i, i).add_done_callback(callback)  # 异步执行,绑定回调函数获取结果
print("结束了")

'''
开始了
结束了
0
8
6
4
2
'''