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