Callable使用例子
时间: 2023-07-11 10:19:48 浏览: 98
下面是一个使用 `Callable` 的例子:
```python
from concurrent.futures import ThreadPoolExecutor, as_completed
import time
def task(num):
print(f"Processing task {num}...")
time.sleep(1) # 模拟耗时操作
print(f"Task {num} completed!")
return num
if __name__ == '__main__':
with ThreadPoolExecutor(max_workers=3) as executor:
futures = [executor.submit(task, i) for i in range(1, 6)]
for future in as_completed(futures):
result = future.result()
print(f"Task {result} has completed.")
```
在这个例子中,我们定义了一个 `task` 函数,它接受一个参数 `num`,并模拟一个耗时操作。我们使用 `ThreadPoolExecutor` 创建一个线程池,最大工作线程数为 3。然后我们使用 `executor.submit()` 提交任务,每个任务都是一个 `Callable` 对象。我们使用 `as_completed()` 函数迭代已完成的任务,并打印它们的结果。
阅读全文