1. from concurrent.futures import ThreadPoolExecutor
    2. import threading
    3. import time
    4. # 定义一个准备作为线程任务的函数
    5. def action(num):
    6. my_sum = 0
    7. for i in range(num):
    8. my_sum += i
    9. return my_sum
    10. # 创建一个包含2条线程的线程池
    11. with ThreadPoolExecutor(max_workers=2) as pool:
    12. # 向线程池提交一个task, 50会作为action()函数的参数
    13. future1 = pool.submit(action, 50)
    14. # 向线程池再提交一个task, 100会作为action()函数的参数
    15. future2 = pool.submit(action, 100)
    16. def get_result(future):
    17. print(future.result())
    18. # 为future1添加线程完成的回调函数
    19. future1.add_done_callback(get_result)
    20. # 为future2添加线程完成的回调函数
    21. future2.add_done_callback(get_result)
    22. print('--------------')