#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/10/8 10:40
# @Site :
# @File : 多进程_串行.py
# @Software: PyCharm
import time
import multiprocessing
data = range(8)
def muchjob(x):
time.sleep(5)
return (x**2)
if __name__ == '__main__':
tic = time.time()
# 多进程任务
pool = multiprocessing.Pool(processes=4)
result = []
for i in range(8):
result.append(pool.apply_async(muchjob, (i,)))
pool.close()
pool.join()
ans = [res.get() for res in result]
print(ans)
toc = time.time()
print('used {:.5}s'.format(toc-tic))
# tic = time.time()
# #串行任务
# ans = [muchjob(i) for i in range(8)]
# print(ans)
# toc = time.time()
# print('used {:.5}s'.format(toc - tic))
本机运行多进程时间10.125s,串行运行时间40.004s

本文通过Python代码实现多进程与串行任务处理的对比,展示了在处理多个任务时,多进程可以显著提高效率。实验中,使用了8个任务,每个任务需要5秒的处理时间,结果显示多进程总耗时约10.125秒,而串行处理则耗时40.004秒。
1万+

被折叠的 条评论
为什么被折叠?



