知行编程网知行编程网  2023-01-09 10:30 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python获取GIL锁的流程的相关知识,包括第二意见获取流程,以及chatgpt 编程这些编程知识,希望对大家有参考作用。

Python获取GIL锁的过程


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电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享