Python中通过run()函数实现并发执行任务
发布时间:2024-01-16 16:34:40
在Python中,可以使用concurrent.futures模块中的ThreadPoolExecutor类来实现并发执行任务。ThreadPoolExecutor类提供了一个简单的并发执行任务的接口,可以方便地实现多线程任务的执行。
以下是一个使用concurrent.futures模块实现并发执行任务的例子:
import concurrent.futures
def task(i):
print(f"Task {i} started")
# 模拟任务执行时间
time.sleep(1)
print(f"Task {i} finished")
# 创建一个ThreadPoolExecutor对象,最多同时运行5个线程
executor = concurrent.futures.ThreadPoolExecutor(max_workers=5)
# 提交10个任务到线程池执行
for i in range(10):
executor.submit(task, i)
# 关闭线程池
executor.shutdown(wait=True)
在上面的例子中,首先定义了一个 task 函数,该函数模拟了一个任务的执行。然后创建了 ThreadPoolExecutor 对象,设置最大并发线程数为 5。接下来,通过 executor.submit() 方法将任务提交到线程池中执行。最后,调用 executor.shutdown() 方法关闭线程池。
运行上述代码,将会观察到任务被并发执行的效果。每个任务的执行时间为1秒,由于线程池最大并发数为5,所以前5个任务将同时执行,之后的任务会在前面的任务完成之后再执行。
可以根据实际需求进行调整线程池的最大并发数和任务的执行时间,以达到 的性能和效果。同时还可以使用concurrent.futures模块提供的其他类和方法来实现不同的并发模式,如使用ProcessPoolExecutor类实现多进程并发执行任务。
