python中使用concurrent.futures库,完成多线程任务

concurrent.futures库在Python中提供了一个高层次的接口,用于异步执行可调用对象。这个库非常适合执行多线程或多进程任务,因为它会自动管理线程或进程的创建、调度和回收。

以下是一个使用concurrent.futures.ThreadPoolExecutor来完成多线程任务的示例。假设我们有一个函数task,它接受一个整数参数,并返回一个该整数的平方。我们将使用线程池来并行执行多个这样的任务。

import concurrent.futures  
  
# 定义任务函数  
def task(n):  
    """计算整数的平方并模拟一些工作"""  
    print(f"开始计算 {n} 的平方,在线程 {concurrent.futures.thread_identifier()}")  
    # 模拟一些计算工作  
    import time  
    time.sleep(1)  # 假设每个任务耗时1秒  
    result = n * n  
    print(f"完成计算 {n} 的平方,结果为 {result}")  
    return result  
  
# 主程序  
if __name__ == "__main__":  
    # 创建一个包含4个线程的线程池  
    with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:  
        # 提交10个任务到线程池  
        futures = [executor.submit(task, i) for i in range(10)]  
          
        # 等待所有任务完成并获取结果  
        for future in concurrent.futures.as_completed(futures):  
            result = future.result()  
            print(f"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值