python 线程池 如何使用
时间: 2023-10-24 14:06:02 浏览: 89
你可以使用 Python 内置的 multiprocessing 模块来创建线程池。具体步骤如下:
1. 导入 multiprocessing 模块:`import multiprocessing`
2. 创建一个 ThreadPool 对象:`pool = multiprocessing.Pool(num_threads)`
其中,num_threads 为线程池中线程数。
3. 使用 ThreadPool 对象的 apply_async() 方法向线程池中添加任务:
```
result = pool.apply_async(func, args)
```
其中,func 为要执行的函数,args 为 func 函数的参数。apply_async() 方法会立即返回一个结果对象 result,可以通过 result.get() 方法获取 func 函数的返回值。
4. 关闭线程池:`pool.close()`
5. 等待所有任务执行完毕:`pool.join()`
完整代码示例:
```
import multiprocessing
def func(x):
return x * x
if __name__ == '__main__':
num_threads = 4
pool = multiprocessing.Pool(num_threads)
tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
results = []
for task in tasks:
results.append(pool.apply_async(func, (task,)))
pool.close()
pool.join()
for result in results:
print(result.get())
```
代码中定义了一个 func() 函数,每次传入一个参数 x,并返回 x 的平方。创建了一个长度为 10 的任务列表 tasks,将每个任务都添加到线程池中。最后,遍历线程池中的所有结果对象并输出结果。
阅读全文