请用python写一个线程池投递任务的示例,任务是一个方法函数。
时间: 2024-02-15 17:04:42 浏览: 21
好的,以下是一个简单的线程池投递任务的示例:
```python
import concurrent.futures
def task_func(num):
print(f"Task {num} is being executed")
if __name__ == "__main__":
# 创建线程池,最多同时执行3个任务
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
# 投递5个任务
for i in range(5):
executor.submit(task_func, i)
```
在这个示例中,我们首先定义了一个名为`task_func`的方法函数,它接受一个参数`num`。这个函数在被调用时会输出一条信息,表示正在执行某个任务。
然后,我们使用`concurrent.futures.ThreadPoolExecutor`创建了一个最多同时执行3个任务的线程池。接着,我们使用`executor.submit`方法投递了5个任务,每个任务都是调用`task_func`函数,并传入一个不同的参数。
运行上述代码,可以看到输出的信息类似于:
```
Task 0 is being executed
Task 1 is being executed
Task 2 is being executed
Task 3 is being executed
Task 4 is being executed
```
这说明线程池成功地投递了5个任务,并且最多同时执行了3个任务。