面试题答案
一键面试import concurrent.futures
# 计算两个数的和的任务
def add_numbers(a, b):
return a + b
# 创建线程池并执行任务
def thread_pool_example():
with concurrent.futures.ThreadPoolExecutor() as executor:
future = executor.submit(add_numbers, 3, 5)
result = future.result()
print(f"线程池计算结果: {result}")
# 创建进程池并执行任务
def process_pool_example():
with concurrent.futures.ProcessPoolExecutor() as executor:
future = executor.submit(add_numbers, 3, 5)
result = future.result()
print(f"进程池计算结果: {result}")
if __name__ == "__main__":
thread_pool_example()
process_pool_example()
上述代码分别展示了使用concurrent.futures
模块创建线程池和进程池,并提交计算两个数之和的任务到池中执行的示例。
add_numbers
函数:定义了简单的计算两个数之和的任务。thread_pool_example
函数:使用ThreadPoolExecutor
创建线程池,提交任务并获取结果。process_pool_example
函数:使用ProcessPoolExecutor
创建进程池,提交任务并获取结果。if __name__ == "__main__"
:这是在Windows系统上使用ProcessPoolExecutor
所必需的,确保进程相关代码在主模块中被正确执行。在Linux等系统上,这部分不是必需的,但保留它可以保证跨平台兼容性。