python gil_Python的GIL是什么?

GIL是什么

Python官方解释器(CPython解释器)在内部不是线程安全的,因此它有一个全局解释器锁(Global Interpreter Lock简称GIL),它使得在任何时刻都只有一个线程在执行Python字节码。

这也是使得标准版本的Python并不能实现真正的多线程并发的直接原因。简单来说就是,一个Python进程永远不能在同一时刻使用多个CPU核心。

In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.)

GIL会带来什么

一起来看一个例子

计算耗时

然后我们count_down两次,看看耗时情况

工作很好,但是老板不高兴。他要我们加快速度。我们怎样才能更快呢?我们使用线程使这两个函数调用并行运行,可以吗?理论上,并行运行一次函数应该和运行一次一样多。因为,这两个函数调用并行运行。让我们尝试在不同线程中调用函数两次:

是GIL导致呢?

如何解决这个问题?

尝试使用multiprocessing模块

想了解更多的内容?请继续关注。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值