示例代码如下:
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()