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

python 线程池

作者:一脸帅气   发布日期:2025-12-19   浏览:89

from concurrent.futures import ThreadPoolExecutor
import time

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

# 使用线程池执行任务
def use_thread_pool():
    # 创建一个线程池,最多支持3个线程并发执行
    with ThreadPoolExecutor(max_workers=3) as executor:
        # 提交多个任务到线程池
        futures = [executor.submit(task, i) for i in range(5)]

        # 获取任务的执行结果
        for future in futures:
            result = future.result()  # 等待任务完成并获取结果
            print(result)

if __name__ == "__main__":
    use_thread_pool()

解释说明:

  1. ThreadPoolExecutor:这是 concurrent.futures 模块中的一个类,用于管理线程池。通过它,我们可以方便地创建和管理多个线程。

  2. task 函数:这是一个模拟的任务函数,它会打印任务开始和结束的信息,并且通过 time.sleep(2) 模拟一个耗时操作。

  3. use_thread_pool 函数:这个函数展示了如何使用线程池来执行多个任务。我们创建了一个最大支持3个线程的线程池,并提交了5个任务给线程池。每个任务都会被分配给一个线程去执行。

  4. future.result():当我们调用 future.result() 时,程序会等待该任务完成并返回结果。如果任务抛出异常,result() 方法也会抛出相同的异常。

  5. with 语句:使用 with 语句来管理线程池的好处是,当代码块结束时,线程池会自动关闭,确保所有资源都被正确释放。

通过这种方式,我们可以高效地管理和调度多个线程来处理并发任务。

上一篇:python 多进程

下一篇:python threading

大家都在看

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

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

Laravel 中文站