多进程和单进程执行任务的耗时对比

定义一个累加任务,从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}")

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值