python怎么创建线程池
时间: 2023-07-17 22:55:51 浏览: 119
要在 Python 中创建线程池,可以使用 `concurrent.futures` 模块中的 `ThreadPoolExecutor` 类。以下是创建线程池的示例代码:
```python
import concurrent.futures
# 定义一个函数作为线程任务
def my_task(arg):
# 执行任务的逻辑
print(f"Running task with argument: {arg}")
# 创建一个 ThreadPoolExecutor 对象,指定线程池中的线程数量
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
# 提交任务给线程池,通过 submit() 方法,可以获得一个 future 对象
future1 = executor.submit(my_task, "task1")
future2 = executor.submit(my_task, "task2")
# 可以通过 future 对象的 result() 方法获取任务的返回值(如果有)
result1 = future1.result()
result2 = future2.result()
# 打印任务的返回值
print(f"Result of task1: {result1}")
print(f"Result of task2: {result2}")
```
在上面的示例中,我们首先定义了一个函数 `my_task`,作为线程池中的任务逻辑。然后,使用 `ThreadPoolExecutor` 创建了一个线程池对象,并指定了线程池中的最大线程数(这里是 5)。
接下来,我们使用 `executor.submit()` 方法将任务提交给线程池并获取一个 `future` 对象。通过 `future` 对象的 `result()` 方法可以获取任务的返回值。在这个示例中,我们没有实际返回任何值,所以返回结果为 `None`。
最后,我们打印了任务的返回值。请注意,`submit()` 方法会立即返回,不会等待任务执行完成。如果需要等待任务完成并获取结果,可以使用 `result()` 方法。
通过使用 `ThreadPoolExecutor` 类,你可以方便地创建并管理线程池,以同时执行多个任务。
阅读全文