使用 Python 中的 concurrent.futures 模块创建线程池的一个例子

import concurrent.futures
import time

# 定义一个函数,用来模拟任务的执行
def task(name, duration):
    print(f'Task {name} started')
    time.sleep(duration)
    print(f'Task {name} finished')
    return name

# 创建一个最多有 3 个线程的线程池
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
    # 提交 6 个任务
    tasks = {executor.submit(task, f'Task{i}', i): i for i in range(1, 7)}
    # 按照任务完成的顺序输出结果
    for future in concurrent.futures.as_completed(tasks):
        result = future.result()
        print(f'Task {result} completed')

上述代码定义了一个 task 函数,模拟了一个任务需要执行一段时间的情况,然后创建了一个最多有 3 个线程的线程池,并提交了 6 个任务。使用 concurrent.futures.as_completed 函数来获取已完成的任务的结果,并按照任务完成的顺序输出结果。

Task 1 started
Task 2 started
Task 3 started
Task 1 finished
Task 4 started
Task 2 finished
Task 5 started
Task 6 started
Task 3 finished
Task 4 finished
Task 5 finished
Task 6 finished
Task 1 completed
Task 2 completed
Task 3 completed
Task 4 completed
Task 5 completed
Task 6 completed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值