【Python3 爬虫】U29_GIL全局解释器锁
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密集型操作上不建议使用多线程,而建议使用多进程。
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!