python submit函数用法
时间: 2023-10-13 20:26:41 浏览: 465
`submit()` 函数通常是用于多线程/多进程编程中的一个方法,用于提交任务并异步执行,然后返回一个 `Future` 对象。在 Python 中,`submit()` 函数常常和 `ThreadPoolExecutor` 或 `ProcessPoolExecutor` 类一起使用。
下面是一个简单的例子,展示了 `submit()` 函数的用法:
```python
from concurrent.futures import ThreadPoolExecutor
import time
def task(num):
print(f"start task {num}")
time.sleep(1)
print(f"end task {num}")
if __name__ == "__main__":
executor = ThreadPoolExecutor(max_workers=2) # 创建线程池
future1 = executor.submit(task, 1) # 提交任务1
future2 = executor.submit(task, 2) # 提交任务2
future3 = executor.submit(task, 3) # 提交任务3
future1.result() # 等待任务1执行完成
future2.result() # 等待任务2执行完成
future3.result() # 等待任务3执行完成
```
在上面的例子中,我们创建了一个 `ThreadPoolExecutor` 线程池对象,并使用 `submit()` 函数提交了三个任务。这三个任务分别会输出 "start task x" 和 "end task x" 的日志,其中 x 表示任务的编号。由于 `max_workers` 参数设置为 2,因此最多会同时执行两个任务。在 `submit()` 函数返回后,我们使用 `result()` 方法来等待每个任务执行完成并获取其结果。
注意,`submit()` 函数会立即返回,并不会等待任务执行完成。如果需要等待所有任务执行完成,可以使用 `wait()` 或 `as_completed()` 函数。
阅读全文