Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python线程池异步处理

作者:涅盘の梦   发布日期:2026-04-29   浏览:85

from concurrent.futures import ThreadPoolExecutor, as_completed

# 创建一个线程池,最大线程数为3
executor = ThreadPoolExecutor(max_workers=3)

# 定义一个简单的任务函数
def task(n):
    import time
    time.sleep(1)  # 模拟耗时操作
    return f"Task {n} completed"

# 提交多个任务到线程池中
futures = [executor.submit(task, i) for i in range(5)]

# 异步获取任务结果
for future in as_completed(futures):
    print(future.result())

# 关闭线程池
executor.shutdown()

解释说明:

  1. ThreadPoolExecutor:这是 concurrent.futures 模块中的一个类,用于创建和管理线程池。通过指定 max_workers 参数来设置线程池的最大线程数。
  2. task 函数:这是一个简单的任务函数,模拟了一个耗时操作(如网络请求或文件读写)。它接收一个参数 n 并返回一个字符串表示任务完成。
  3. submit 方法:将任务提交到线程池中执行。submit 方法会立即返回一个 Future 对象,代表这个任务的执行状态。
  4. as_completed:用于异步获取任务的结果。它会返回一个迭代器,当某个任务完成时,该迭代器会生成相应的 Future 对象。
  5. future.result():获取 Future 对象的结果。如果任务还没有完成,result() 会阻塞直到任务完成。
  6. shutdown 方法:关闭线程池,确保所有任务完成后释放资源。

这段代码展示了如何使用 Python 的线程池来进行异步任务处理,并且可以并行执行多个任务以提高效率。

上一篇:python中uniform的用法

下一篇:python倒序输出列表

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python的assert基本用法

python开发windows应用程序

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站