根据python的特性说说为什么要引入GIL锁

2021-03-18 06:25

阅读:696

标签:解释   唤醒   存在   虚拟   相关   资源   使用   执行   进入   

python中对象的管理与引用计数相关,,当引用计数变为0时,该对象便会被垃圾回收器回收,当撤销对一个对象的引用时,python 解释器对对象以及计数管理会分为以下两步:

1,使用引用计数减一

2.判断该计数是否为0,如果为0,则销毁该对象

假设a,b线程同时引用一个对象obj,此时该对象的引用计数为2,如果线程a打算撤销对该对象的引用,引用计数减一,由于存在多线程机制,a恰巧在此时被挂起,b进入执行状态,但b不幸的是b此时也要撤销对该对象的引用,引用计数减一,此时obj的引用计数为0,因此该对象被销毁,内存被释放,此时a再次被唤醒去执行第二步的操作时发现已经面目全非,则其操作结果未可知。

鉴于此python引入GIL,以保证对虚拟机内部共享资源访问的互斥性。

 

根据python的特性说说为什么要引入GIL锁

标签:解释   唤醒   存在   虚拟   相关   资源   使用   执行   进入   

原文地址:https://www.cnblogs.com/xwyjh/p/13956403.html


评论


亲,登录后才可以留言!