首页 > 编程语言 > 详细

【Python3 爬虫】U29_GIL全局解释器锁

时间:2020-04-07 18:59:11      阅读:64      评论:0      收藏:0      [点我收藏+]

Python自带的解释器是CPtyhon。CPtyhon解释器的多线程实际上一个假的多线程(在多核CPU中,只能利用一核,不能利用多核)。同一时刻只有一个线程在执行,为了保证同一时刻只有一个下线程在执行,在CPython解释器中有一个东西叫做GIL,叫做全局解释器锁。这个解释器锁是有必要的,因为CPython解释器的内存管理不是线程安全的。当然,处理CPython,还有其他解释器:

  • 1.Jython,用Java实现的解释器。不存在GIL锁。
  • 2.IronPython:用.net实现的Python解释器。不存在GIL锁。
  • 3.PyPy:用Python实现的Python解释器。存在GIL锁。

GIL虽然是一个假的多线程。但是在处理一些IO操作上(例如写文件和网络请求),可以很大程度的提高效率。在IO密集型操作上建议使用多线程,但是在一些CPU密集型操作上不建议使用多线程,而建议使用多进程。

【Python3 爬虫】U29_GIL全局解释器锁

原文:https://www.cnblogs.com/OliverQin/p/12655120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!