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涉及到轮询切换,时间会耗费更惨

      
  • 相关阅读:
    4g项目shell脚本
    shell脚本执行方法
    linux 4g项目定时启动脚本
    java面试-mysql优化
    java面试-java8特性
    java面试-oom内存溢出有几种类型
    java面试-动态代理
    java面试-ThreadLocal
    java面试-类加载过程
    java面试-JVM内存模型
  • 原文地址:https://www.cnblogs.com/ajaxa/p/9112231.html
Copyright © 2011-2022 走看看