"""
# result() # 拿到返回值
# max_workers # 开启几个线程
# add_done_callback # 启用回调函数
# map # 拿不到返回值
# 参数1:函数名
# 参数2:可迭代的
# shutdown()
# 相当于执行了 close , join
"""
import time
from concurrent.futures import ThreadPoolExecutor
def fn(n):
time.sleep(2)
print(n)
return n*n
def call_back(m): # 线程池的回调函数
print('结果是:%s'%m.result())
tpool = ThreadPoolExecutor(max_workers=5) # 不要超过 cup 的个数 * 5
# tpool.map(fn,range(20)) # 拿不到返回值
for i in range(20):
tpool.submit(fn,i).add_done_callback(call_back) # 调用 callback
# t_lis = []
# for i in range(20):
# t = tpool.submit(fn,i)
# t_lis.append(t)
# tpool.shutdown() # 相当于执行了 close , join
# print('主线程')
# for t in t_lis:
# print('***',t.result())