zoukankan      html  css  js  c++  java
  • GIL计算python 2 和 python 3 计算密集型

    首先我画了一张图来表示GIL运行的方式:

    Python 3执行如下计算代码:
    #-*-conding:utf-8-*-

    import threading
    import time
    def add():
    n = 1
    for i in range(1000000):
    n += i
    print('加法结果',n)

    def multiplication():
    m = 1
    for i in range(1,100000):
    m *= i
    print('乘法结果:',m)

    now = time.time()
    t1 = threading.Thread(target=add)
    t2 = threading.Thread(target=multiplication)
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    end = time.time() - now
    print('上面2个线程总共运行时间:',end)

    结果:

      # 加法结果 499999500001
      # 乘法结果: 结果太长省去了
      # 上面2个线程总共运行时间: 27.660937547683716

     

    Python 2中计算如上代码:

    结果:

      # 加法结果 499999500001
      # 乘法结果: 结果太长省去了
      # 上面2个线程总共运行时间: 29.212000131607056

    总结:
    2个运行执行时间差不多

    但是:

      在计算密集型中,CPU涉及到轮询切换,时间会耗费更惨

      
  • 相关阅读:
    C++课程的第一次实验
    First C++
    7-12 关于堆的判断
    大笨钟
    7-14 喊山
    L3-010 是否完全二叉搜索树 (30分)
    7-13 天梯地图
    7-10 排座位
    7-9 抢红包
    帅到没朋友
  • 原文地址:https://www.cnblogs.com/ajaxa/p/9112231.html
Copyright © 2011-2022 走看看