写一个python基于线程池的多线程
时间: 2024-05-26 14:05:36 浏览: 99
python线程池如何使用
下面是一个基于线程池的多线程示例代码:
```python
import threading
import concurrent.futures
def worker(num):
"""该函数将在线程池中并发执行"""
print(f"Worker {num} starting...")
for i in range(1, 6):
print(f"Worker {num}: {i}")
print(f"Worker {num} finished.")
def main():
"""主线程"""
# 创建一个线程池对象,最大线程数为3
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
# 启动5个任务,将在线程池中并发执行
for i in range(1, 6):
executor.submit(worker, i)
if __name__ == "__main__":
main()
```
在这个例子中,我们使用了Python标准库中的`concurrent.futures`模块,它提供了一个线程池对象`ThreadPoolExecutor`,可以方便地创建一个线程池,并发执行多个任务。
我们首先定义了一个`worker`函数,该函数将被并发执行。然后在`main`函数中,我们使用`ThreadPoolExecutor`创建了一个最大线程数为3的线程池对象,并启动了5个任务,每个任务将调用`worker`函数。这些任务将在线程池中并发执行,因此可以看到它们的输出是交错的。
这种基于线程池的多线程方式可以有效地提高程序的并发处理能力,同时避免了手动创建和管理线程的复杂性。
阅读全文