新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:Python獲取GIL鎖的流程
1、流程

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的高州網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
(1)先嘗試去獲取互斥量mutex,如果獲取失敗,則循環(huán)監(jiān)控locked狀態(tài),等待持有鎖的線程釋放鎖
(2)如果獲取到互斥量,將locked狀態(tài)置1,表示鎖已被該線程持有,其他線程需要等待,然后釋放互斥量,讓其他線程有機會進入臨界區(qū)等待上鎖
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;
}以上就是python獲取GIL鎖的流程,希望對大家有所幫助。更多Python學習推薦:python教學
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
標題名稱:創(chuàng)新互聯(lián)Python教程:Python獲取GIL鎖的流程
文章出自:http://fisionsoft.com.cn/article/dpcshsj.html


咨詢
建站咨詢
