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

python 进程池

作者:′残花败落°   发布日期:2025-11-14   浏览:57

from multiprocessing import Pool
import os
import time

# 定义一个函数,将在进程池中执行
def task(name):
    print(f"任务 {name} 开始, 进程ID: {os.getpid()}")
    time.sleep(2)  # 模拟任务耗时
    print(f"任务 {name} 结束")
    return f"任务 {name} 完成"

if __name__ == "__main__":
    # 创建一个包含4个进程的进程池
    pool = Pool(processes=4)

    # 使用进程池异步执行多个任务
    results = []
    for i in range(5):
        result = pool.apply_async(task, args=(f"任务{i+1}",))
        results.append(result)

    # 关闭进程池,不再接受新的任务
    pool.close()

    # 等待所有任务完成
    pool.join()

    # 获取任务的结果
    for result in results:
        print(result.get())

解释说明:

  1. 导入模块multiprocessing 模块提供了创建和管理多进程的功能。我们使用 Pool 类来创建一个进程池。
  2. 定义任务函数task 函数模拟了一个耗时的任务,并打印当前进程的 ID。
  3. 创建进程池Pool(processes=4) 创建了一个包含 4 个进程的进程池。
  4. 提交任务:使用 apply_async 方法将任务异步提交到进程池中执行。args 参数用于传递给任务函数的参数。
  5. 关闭进程池:调用 pool.close() 表示不再接受新的任务。
  6. 等待任务完成:调用 pool.join() 等待所有任务完成。
  7. 获取结果:通过 result.get() 获取每个任务的返回值并打印。

这个示例展示了如何使用 Python 的 multiprocessing.Pool 来并发执行多个任务。

上一篇:python keyerror

下一篇:python数组添加元素

大家都在看

python时间格式

python读取文件路径

staticmethod在python中有

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

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

Laravel 中文站