import concurrent.futures # 创建一个线程池 with concurrent.futures.ThreadPoolExecutor() as executor: # 提交任务给线程池 task1 = executor.submit(func1, arg1) task2 = executor.submit(func2, arg2) task3 = executor.submit(func3, arg3) # 使用 wait 方法等待所有任务完成 concurrent.futures.wait([task1, task2, task3]) # 所有任务完成后,继续执行其他操作 # ...
在这个示例中,首先使用 concurrent.futures.ThreadPoolExecutor()
创建了一个线程池。然后,使用 executor.submit()
方法将需要执行的函数和参数提交给线程池,返回一个任务对象(Future)。每个任务对象分别保存在 task1
、task2
和 task3
变量中。
接下来,使用 concurrent.futures.wait()
方法等待所有任务完成。wait()
方法接受一个任务对象列表作为参数,并阻塞当前线程,直到所有任务都完成。你也可以传入超时参数来设置等待的最大时间。
当所有任务完成后,代码会继续执行后面的操作。
注意,以上示例只是一种基本的用法,实际情况可能会根据具体需求进行调整。确保要导入 concurrent.futures
模块以使用线程池和相关方法。同时,也要在任务函数中处理异常以避免潜在的错误。