python中gil锁和线程锁,python3 gil锁
1、流程
(1)先尝试去获取互斥量互斥体,如果获取失败,则循环监控锁定的状态,等待持有锁的线程释放锁
(2)如果获取到互斥量,将锁定的状态置1,表示锁已被该线程持有,其他线程需要等待,然后释放互斥量,让其他线程有机会进入临界区等待上锁
2、实例
intPyThread _ acquire _ lock(python read _ type _ lock lock,intwaitflag)
{
intsuccess
pthread _ lock * lock=(pthread _ lock *)lock;
intstatus,error=0;
status=pthread _ mutex _ lock(thelock-mut);
成功=锁-被锁==0;
如果(!successwaitflag){
而(锁定){
status=pthread_cond_wait(锁锁_释放,
锁-mut);
}
成功=1;
}
如果(成功)thelock-locked=1;
status=pthread _ mutex _ unlock(thelock-mut);
如果(错误)成功=0;
return成功
}以上就是计算机编程语言获取GIL锁的流程,希望对大家有所帮助。更多计算机编程语言学习推荐:python教学
本文教程操作环境:windows7系统、Python 3.9.1、戴尔自交第三代电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。