Python:使用线程池轻松处理多线程
import concurrent.futures
# 定义一个函数,这个函数将用作线程的任务
def task(n):
print(f"Thread {n} is running")
# 模拟耗时操作
import time
time.sleep(2)
return f"Thread {n} finished"
# 使用线程池执行任务
def use_thread_pool(num_threads, tasks):
with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor:
future_to_task = {executor.submit(task, task): task for task in tasks}
for future in concurrent.futures.as_completed(future_to_task):
task = future_to_task[future]
try:
data = future.result()
print(f"Task {task} returned {data}")
except Exception as e:
print(f"Task {task} raised an exception: {e}")
# 使用线程池处理10个任务
use_thread_pool(5, range(10))
这段代码定义了一个task
函数,这个函数将作为线程任务执行。use_thread_pool
函数使用线程池来并发执行这些任务,并打印出任务的开始和结束信息。这里使用了concurrent.futures
模块中的ThreadPoolExecutor
来创建线程池,这是一个简单而有效的在Python中处理多线程的方法。
评论已关闭