面试题答案
一键面试- 导入模块:
from concurrent.futures import ThreadPoolExecutor
- 创建线程池:
executor = ThreadPoolExecutor(max_workers=5) # max_workers指定线程池中线程的最大数量
- 定义任务函数:
def task_function(x): return x * x
- 提交任务到线程池:
future = executor.submit(task_function, 3) # 提交任务,3为任务函数的参数
- 获取任务执行结果:
result = future.result() # 获取任务执行的结果,如果任务未完成,会阻塞等待直到任务完成 print(result) # 输出9
- 关闭线程池:
executor.shutdown() # 不再接受新任务,等待所有已提交任务完成
也可以使用with
语句来自动管理线程池的生命周期:
with ThreadPoolExecutor(max_workers=5) as executor:
future = executor.submit(task_function, 3)
result = future.result()
print(result)
这样在with
块结束时,线程池会自动关闭。