python pool多线程的用法
时间: 2023-11-04 20:04:37 浏览: 41
Python中的pool多线程是通过multiprocessing模块来实现的。使用pool多线程可以方便地同时执行多个任务,提高程序的执行效率。
以下是pool多线程的用法:
1. 导入multiprocessing模块
```python
import multiprocessing
```
2. 创建一个pool对象
```python
pool = multiprocessing.Pool(processes=4)
```
其中,processes参数表示创建的进程数。
3. 执行任务
```python
pool.apply_async(func, args=(), callback=None)
```
其中,func表示要执行的函数,args表示函数的参数,callback表示回调函数,可选。
4. 关闭pool对象
```python
pool.close()
pool.join()
```
其中,close()方法表示关闭pool对象,join()方法表示等待所有子进程执行完毕。
完整示例代码如下:
```python
import multiprocessing
def func(x):
return x*x
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=4)
results = []
for i in range(10):
result = pool.apply_async(func, (i,))
results.append(result)
pool.close()
pool.join()
for result in results:
print(result.get())
```
在示例代码中,创建了一个pool对象,执行了10个任务,每个任务都是调用func函数计算平方,最后输出了结果。
注意,由于Python的全局解释器锁(GIL)的存在,多线程并不能充分利用多核CPU的优势。如果需要充分利用多核CPU,可以考虑使用多进程。