定义一个累加任务,从0累加到2亿,分别采用单进程执行方式和多进程执行方式执行该任务,单进程方式对3个任务进行顺序执行,多进程方式对3个任务进行同时执行,显然多进程方式耗时小于单进程方式。
#定义一个累加任务,从0累加到亿级。
def task_process(delay):
num = 0
for i in range(delay*100000000):#从0累加到亿级
num+=i
print(f"num的值为 {num},执行完成")
def single_process():#单进程函数
print("single_process begin")
task_process(2)#每个任务顺序执行
task_process(2)
task_process(2)
print("single_process end")
def multi_process():#多进程函数
print("multi_process begin")
list_arg = [2,2,2]
processes = []
for i in list_arg:
processes.append(
Process(target=task_process, args=(i,))
)
for process in processes:#多个任务并行执行
process.start()#进程开始执行
for process in processes:
process.join()#等待进程结束
print("multi_process end")
if __name__=='__main__':
t0 = time.time()#开始时计时
single_process()
t1 = time.time()#结束时计时
print(f"顺序执行耗时 {t1-t0} ")
t2 = time.time()#开始时计时
multi_process()
t3 = time.time()#结束时计时
print(f"多进程并行执行耗时 {t3-t2}")