python多任务编程-线程池-通过回调函数获取返回值

示例代码如下:

import threading
import time
from concurrent.futures import ThreadPoolExecutor


def make_food(food):
    print(food, "开始制作")
    time.sleep(2)
    print(food, "制作完成")
    return food


def get_finish_food(future):
    print(future.result())
    return future.result()


def main():

    food_list = ['番茄炒鸡蛋', '青椒炒牛肉']
	
    # 创建2个线程
    pool = ThreadPoolExecutor(max_workers=2)

    for food in food_list:
        future = pool.submit(make_food, food)
        # 不阻塞,通过回调函数,获取函数返回值
        future.add_done_callback(get_finish_food)


if __name__ == '__main__':
    main()
posted @ 2021-03-26 16:55  程序员陈师兄cxycsx  阅读(1043)  评论(0)    收藏  举报