导语:
本文主要介绍了关于Python获取GIL锁的流程的相关知识,包括第二意见获取流程,以及chatgpt 编程这些编程知识,希望对大家有参考作用。
1、流程
(1)首先尝试获取mutex互斥锁,如果获取失败,则循环监听锁状态,等待持有锁的线程释放锁
(2)如果获得了互斥量,则将锁定状态设置为1,表示该锁已经被该线程持有,其他线程需要等待,然后释放互斥量,让其他线程有机会进入临界区并等待锁
2、实例
int PyThread_acquire_lock(PyThread_type_lock lock, int waitflag)
{
int success;
pthread_lock *thelock = (pthread_lock *)lock;
int status, error = 0;
status = pthread_mutex_lock( &thelock->mut );
success = thelock->locked == 0;
if ( !success && waitflag ) {
while ( thelock->locked ) {
status = pthread_cond_wait(&thelock->lock_released,
&thelock->mut);
}
success = 1;
}
if (success) thelock->locked = 1;
status = pthread_mutex_unlock( &thelock->mut );
if (error) success = 0;
return success;
}
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python3.4清屏方法12/11
- ♥ python连接mysql数据库步骤10/18
- ♥ 如何使用python3输出图形?09/23
- ♥ 如何在python中对数字求平方09/10
- ♥ python判断一个数是否为整数08/15
- ♥ 如何忽略python中的异常10/14
内容反馈