python中用 multiprocessing 加速任务处理
Posted JasonLiu1919
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中用 multiprocessing 加速任务处理相关的知识,希望对你有一定的参考价值。
背景
面对海量任务需要高效对其进行消费,而任务之间不存在处理结果的相互依赖。
方案1: multiprocessing模块
以下模拟每个任务处理耗时1s,共有50任务的场景。
示例代码如下:
import time
from multiprocessing import Pool
def function_call(task_dict):
time.sleep(1) # 模拟真实的处理流程
print(task_dict)
if __name__ == '__main__':
test_list = range(50) # 单进程则需要50s, 如果开启5个进程,则大概需要10s
print("Single process version:")
start_time = time.time()
for i in test_list:
function_call(i)
end_time = time.time()
print("Single process version cost time={}s\\n".format(end_time-start_time))
print("multiprocess(below 5 processes) version:")
p = Pool(5)
start_time = time.time()
p.map(function_call, test_list)
end_time = time.time()
print("multiprocess(below 5 processes) version cost time={}s\\n".format(end_time - start_time))
以上是关于python中用 multiprocessing 加速任务处理的主要内容,如果未能解决你的问题,请参考以下文章
11.python并发入门(part9 多线程模块multiprocessing基本用法)