python线程池实例
时间: 2023-05-19 12:07:23 浏览: 74
可以使用Python内置的concurrent.futures模块来创建线程池。以下是一个简单的线程池实例:
```python
import concurrent.futures
def worker(num):
print(f"Worker {num} started")
return
if __name__ == '__main__':
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
for i in range(5):
executor.submit(worker, i)
```
这个例子创建了一个最大线程数为5的线程池,并提交了5个任务给线程池执行。每个任务都是一个简单的打印语句。
相关问题
Python线程池代码实例
好的,以下是一个Python线程池的代码实例:
```python
import concurrent.futures
import time
def task(n):
print(f"Task {n} is starting...")
time.sleep(2)
print(f"Task {n} is ending...")
return f"Task {n} is completed!"
if __name__ == "__main__":
start_time = time.perf_counter()
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
results = [executor.submit(task, i) for i in range(5)]
for future in concurrent.futures.as_completed(results):
print(future.result())
end_time = time.perf_counter()
print(f"Total execution time: {end_time - start_time:.2f} seconds.")
```
这段代码会创建一个最大线程数为3的线程池,然后提交5个任务给线程池进行处理。每个任务都会sleep 2秒来模拟耗时操作,然后返回一个字符串表示任务完成。最后,代码会输出每个任务的返回结果,并计算总共的执行时间。注意,我们使用`concurrent.futures`模块来实现线程池的操作。
python线程池threadpool的实例代码
下面是一个使用 `threadpool` 模块实现线程池的简单示例代码:
```python
import threadpool
def task_func(arg1, arg2):
# 处理任务的函数
pass
# 创建线程池
pool = threadpool.ThreadPool(10)
# 创建任务列表
tasks = []
for i in range(100):
task_args = (i, i+1) # 任务参数
task = threadpool.makeRequests(task_func, [task_args])[0] # 创建任务
tasks.append(task)
# 将任务添加到线程池中
for task in tasks:
pool.putRequest(task)
# 等待所有任务执行完成
pool.wait()
# 关闭线程池
pool.dismissWorkers(10, True)
```
以上代码中,首先创建一个 `ThreadPool` 对象,指定线程池中的线程数为 10。然后创建了一个包含 100 个任务的任务列表,每个任务都是通过 `threadpool.makeRequests` 函数创建的。最后将所有任务添加到线程池中,等待所有任务执行完成。在任务执行完成后,需要调用 `pool.dismissWorkers` 函数关闭线程池。