1、python代码实例代码如下

import time
from joblib import Parallel, delayed


def process_data(data):
    # 模拟处理时间
    time.sleep(1)
    # 处理数据的逻辑
    result = data * 2
    return result


if __name__ == '__main__':
    # 创建需要处理的数据
    data_list = range(10)

    # 开始计时
    start_time = time.time()

    # 使用joblib库进行多进程并行处理
    num_cores = 4  # 设置并行处理的核心数目
    #tasks = []
    # for data in data_list:
    #     task = process_data(data)
    #     tasks.append(task)
    # 该列表推导式将迭代data_list中的每个元素,并调用process_data函数来处理每个元素。然后,它将处理结果存储在名为tasks的列表中。
    #
    # 在Parallel(n_jobs=num_cores)
    # 中,我们使用joblib库的Parallel函数来并行执行这些任务。n_jobs参数指定了要使用的并行处理核心数目。这个参数决定了需要启动的进程数量。
    # 代码实际上是创建了一个列表,其中的每个元素都是一个要并行处理的任务。
    results = Parallel(n_jobs=num_cores)(delayed(process_data)(data) for data in data_list)
    end_time = time.time()

    # 计算总的开销时间
    elapsed_time = end_time - start_time

    # 打印处理结果和开销时间
    print('处理结果:', results)
    print('开销时间:', elapsed_time, '秒')

2、运行结果,为3.5S左右,使用单个进程处理最少需要10s

C:\Users\Thinkpad\AppData\Local\Programs\Python\Python39\python.exe C:/Users/Thinkpad/Desktop/Python_K15/jobli00.py 
处理结果: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
开销时间: 3.52485990524292 秒

Process finished with exit code 0

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐