首页 > 其他 > 详细

GIL

时间:2019-12-21 20:53:43      阅读:104      评论:0      收藏:0      [点我收藏+]

GIL: Global Interfere Lock,全局解释器锁,每个线程在执行代码时,必须获先取GIL锁,并且这个锁是唯一的。

这是cpython解释器(虚拟机)留下的历史问题,jpthon、ppython等其他语言书写的解释器不存在该问题,python语言起始于1991年,当时的多线程还没有普及,因此未能充分考虑到此问题。

弊端:同一时间只能有一个线程在运行,CPU无论是多核的还是单核的,线程也无论是主线程还是子线程。

优势:在某一线程遇到IO阻塞时,会释放GIL锁,其他线程开始执行代码,有点像时间片轮转,极短时间内切换线程,感觉是每个线程是同时执行的,可以理解为雨露均沾的意思。

python开发者guido曾经尝试取消GIL锁,但是经过尝试后,发现效率下降,因此至今保留GIL锁。

解决方案:通过多进程可以实现多核CPU的一同执行,真正实现并行。

GIL

原文:https://www.cnblogs.com/henji1266/p/12078150.html

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