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

  

转载于:https://www.cnblogs.com/ajaxa/p/9112231.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值