MST

星途 面试题库

面试题:Python中使用concurrent.futures模块创建线程池和进程池的基本语法

请用Python的concurrent.futures模块分别展示如何创建线程池和进程池,并提交一个简单任务到池中执行,任务可以是计算两个数的和。
13.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
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模块创建线程池和进程池,并提交计算两个数之和的任务到池中执行的示例。

  1. add_numbers函数:定义了简单的计算两个数之和的任务。
  2. thread_pool_example函数:使用ThreadPoolExecutor创建线程池,提交任务并获取结果。
  3. process_pool_example函数:使用ProcessPoolExecutor创建进程池,提交任务并获取结果。
  4. if __name__ == "__main__":这是在Windows系统上使用ProcessPoolExecutor所必需的,确保进程相关代码在主模块中被正确执行。在Linux等系统上,这部分不是必需的,但保留它可以保证跨平台兼容性。