码迷,mamicode.com
首页 > 其他好文 > 详细

GIL全局解释器锁

时间:2020-06-11 21:27:16      阅读:41      评论:0      收藏:0      [点我收藏+]

标签:线程   global   程序   数据   就是   一个   加锁   机器   计算   

GIL: 全局解释器锁(英语:Global Interpreter Lock,缩写GIL),是计算机程序设计语言解释器用于同步线程的一种机制,它使得任何时刻仅有一个线程在执行。[1]即便在多核心处理器上,使用 GIL 的解释器也只允许同一时间执行一个线程。而且只存在于cpython解释器中。

为什么要有GIL:
在同一时间只有一个线程在使用解释器 每个py程序中都必须有解释器参与,解释器其实就是一堆代码 相当于多个线程要调用同一个解释器代码,共享导致竞争,竞争就要出事,所有给解释器加互斥锁

性能:解释器加锁后,虽然保证数据的安全,但是降低了性能,在多cpu的机器上,无法利用多核提升效率。

其他线程想要执行,必须等到之前的线程释放了GIL,这就意味着:同一时间只有一个线程在运行,效率比较低

GIL全局解释器锁

标签:线程   global   程序   数据   就是   一个   加锁   机器   计算   

原文地址:https://www.cnblogs.com/langye521erxia/p/13095957.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!