码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-11-16 14:01:33      阅读:19      评论:0      收藏:0      [点我收藏+]

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

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

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