python3线程池
时间: 2023-12-05 09:40:53 浏览: 125
Python3中提供了concurrent.futures模块,其中包含了ThreadPoolExecutor线程池类。使用线程池可以避免频繁创建和销毁线程的开销,提高程序的效率。下面是一个简单的线程池使用例子:
```python
import concurrent.futures
import time
def worker(num):
print(f"Thread-{num} start")
time.sleep(1)
print(f"Thread-{num} end")
if __name__ == '__main__':
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
for i in range(3):
executor.submit(worker, i)
```
上述代码中,我们首先定义了一个worker函数,该函数接受一个参数num,表示线程编号。在worker函数中,我们先打印出线程开始执行的信息,然后让线程休眠1秒钟,最后打印出线程结束执行的信息。
在主程序中,我们使用ThreadPoolExecutor创建了一个最大线程数为3的线程池。然后使用submit方法向线程池中提交任务,submit方法接受两个参数,第一个参数是要执行的函数,第二个参数是要传递给函数的参数。在本例中,我们向线程池中提交了3个任务,每个任务都是执行worker函数,并传递了一个不同的参数。
运行上述代码,可以看到输出结果如下:
```
Thread-0 start
Thread-1 start
Thread-2 start
Thread-0 end
Thread-1 end
Thread-2 end
```
可以看到,三个线程分别执行了worker函数,并且是并发执行的。
阅读全文