什么是GIL?GIL对多线程的影响

参考答案:

1. Python语⾔和GIL没有半⽑钱关系。仅仅是由于历史原因在Cpython虚拟机(解释器),难以移除GIL。
2. GIL:全局解释器锁。每个线程在执⾏的过程都需要先获取GIL,保证同⼀时刻只有⼀个线程可以执⾏代码。
3. 线程释放GIL锁的情况: 在IO操作等可能会引起阻塞的system call之前,可以暂时释放GIL,但在执⾏完毕后,必须重新获取GIL Python3.x使⽤计时器(执⾏时间达到阈值后,当前线程释放GIL)或Python 2.x,tickets计数达到100
4. Python使⽤多进程是可以利⽤多核的CPU资源的。
5. 多线程爬取⽐单线程性能有提升,因为遇到IO阻塞会⾃动释放GIL锁
6.为了避免受GIL的影响可以不用官方推荐的Cpython,或者用其他语言来实现,使用多进程。

计算密集型建议采用进程
IO密集型建议采用线程或者协程

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值