cPython下GIL锁

首先需要声明,GIL锁不是python的特性,而是cPython 解释器的特性.只不过大部分的python用户的解释器是cPython,所以在很多人的概念里CPython就是Python,也就想当然的把GIL归结为Python语言的缺陷。所以这里要先明确一点:GIL并不是Python的特性,Python完全可以不依赖于GIL.

GIL锁是什么: 全局解释器锁

GIL锁的作用:在开发cPython解释器的时候是单核情况下,用程序去切换线程,既单核的情况实现多任务(并发)

对CPU密集型计算和IO密集型运算,应该选择多进程还是多线程?

Python,特指CPython的实现,由于GIL的存在,CPython不能有效的利用多核处理器。表现为任意时间一个进程只有一个线程在跑,而IO密集型运算,多数是在IO读写将线程堵塞掉了,这个时候线程切换是很合理的,反正线程只是单纯地等待,在这个等待的时候去做其他的事情,资源利用率就上去了。



猜你喜欢

转载自blog.csdn.net/ahua_c/article/details/79994168
今日推荐