美文网首页python百例
103-多进程的效率

103-多进程的效率

作者: 凯茜的老爸 | 来源:发表于2018-08-09 13:32 被阅读2次

没有多进程,即使CPU有多个核心,程序只是运行在一个核心上,无法利用多进程提升效率。5000万次加法,如果需要2.5秒,调用两次共花费5秒。

import time

def calc():
    result = 0
    for i in range(1, 50000001):
        result += i
    print(result)

if __name__ == '__main__':
    start = time.time()
    calc()
    calc()
    end = time.time()
    print(end - start)

通过多进程,程序运行在多个核心上,同样的调用两次5000万次加法运算,时间仅为一半。

import time
import os

def calc():
    result = 0
    for i in range(1, 50000001):
        result += i
    print(result)

if __name__ == '__main__':
    start = time.time()
    for i in range(2):
        pid = os.fork()
        if not pid:
            calc()
            exit()
    os.waitpid(-1, 0)  # 挂起父进程,直到子进程结束才继续向下执行
    os.waitpid(-1, 0)  # 每个waitpid只能处理一个僵尸进程,两个子进程需要调用两次
    end = time.time()
    print(end - start)

相关文章

  • 103-多进程的效率

    没有多进程,即使CPU有多个核心,程序只是运行在一个核心上,无法利用多进程提升效率。5000万次加法,如果需要2....

  • 《莫烦python》--Multiprocessing多进程

    创建进程 queue进程输出 效率对比 multithreading vs multiprocessing 进程...

  • 简要说明__python3中的进程/线程/协程

    多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关 稳定性: 进程 ...

  • 多进程 multiprocessing 之 Pool

    Pool 进程池 可以有效提升多进程的执行效率 map() map() 自带join功能,每次开启的进程数量最好不...

  • Python(二十九)进程与线程

    进程与线程的使用在代码运行效率的优化上是一个不可或缺的技能,看完本篇文章,你将对进程与线程有一定的了解。 1. 多...

  • Linux进程管理详解(转)

    Linux进程管理详解 1.1 Linux进程管理 进程管理是操作系统的最重要的功能之一。有效率的进程管理能保证一...

  • 多线程

    单线程进程结构缺点: 并发程序存在问题 进程切换开销大 进程通信开销大 限制了进程并发的力度 降低了并行计算的效率...

  • 进程、线程、协程对比

    进程是资源分配的单位 线程是操作系统调度的单位 进程切换需要的资源很最大,效率很低 线程切换需要的资源一般,效率一...

  • Python52_线程、进程、协程的简单对比

    进程是资源分配的单位 线程是操作系统调度的单位 进程切换需要的资源很大,效率很低 线程切换需要的资源一般,效率一般...

  • 效率提升之进程

    进程的特性 独立的地址和内存空间 独立的PID 每个进程拥有自己PCB控制块 进程PCB是用来管理进程,维护进程属...

网友评论

    本文标题:103-多进程的效率

    本文链接:https://www.haomeiwen.com/subject/wjwqbftx.html