最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用鎖訪問共享變量實(shí)例解析

 更新時(shí)間:2018年02月08日 15:34:14   作者:零丁若嘆  
這篇文章主要介紹了python使用鎖訪問共享變量實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是python使用鎖訪問共享變量,具體介紹和實(shí)現(xiàn)如下。

python 做多線程編程時(shí),多個(gè)線程若同時(shí)訪問某個(gè)變量,可能會(huì)對(duì)變量數(shù)據(jù)造成破壞,pyhon中的threading模塊提供了lock對(duì)象,lock中的acquire方法用于獲取一個(gè)鎖,而release用于釋放一個(gè)鎖。當(dāng)一個(gè)線程取得鎖時(shí),它變獲得了共享變量的訪問權(quán),此時(shí)進(jìn)入阻塞狀態(tài),若其它線程申請(qǐng)?jiān)L問這個(gè)變量,則必須等到這個(gè)線程調(diào)用release方法釋放這個(gè)鎖。下面是python中使用鎖的實(shí)例:

#!/usr/bin/env python 
import threading,time 
q=threading.Lock()  #create a lock object 
def mythread(): 
  global a 
  q.acquire()   #acquire the lock 
  a=threading.currentThread().getName() 
  print "a is modified by",a 
  q.release()   #release the lock 
   
for i in range(1,4): 
  t=threading.Thread(target=mythread,name="Thread %d"%i) 
  t.start() 

如果一個(gè)線程想多次獲取資源訪問權(quán),在上面的程序中連續(xù)兩次使用acquire() ,將會(huì)造成死鎖現(xiàn)象,因?yàn)榈谝淮紊暾?qǐng)到的資源還沒有來得及釋放,就進(jìn)行了第二次申請(qǐng)。python中的threading模塊提供了可重入鎖RLock,RLock提供了計(jì)數(shù)器。一個(gè)線程申請(qǐng)到某個(gè)資源,計(jì)數(shù)器會(huì)加1,釋放掉這個(gè)資源計(jì)數(shù)器會(huì)減1.這樣,一個(gè)線程可以多次請(qǐng)求同一個(gè)資源,在所有請(qǐng)求都被釋放后,其它線程才允許獲取這個(gè)鎖。上面的代碼做簡(jiǎn)單修改,可得:

#!/usr/bin/env python 
import threading,time 
q=threading.RLock()    #create a lock object 
def mythread(): 
  global a 
  q.acquire()    #acquire the lock 
  a=threading.currentThread().getName() 
  print "a is modified by",a 
  q.acquire() 
  a=threading.currentThread().getName() 
  print "a is modified by %s the second time"% a 
  q.release()    
  q.release()    #release the lock 
for i in range(1,4): 
  t=threading.Thread(target=mythread,name="Thread %d"%i) 
  t.start() 

總結(jié)

以上就是本文關(guān)于python使用鎖訪問共享變量實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 使用Python判斷質(zhì)數(shù)(素?cái)?shù))的簡(jiǎn)單方法講解

    使用Python判斷質(zhì)數(shù)(素?cái)?shù))的簡(jiǎn)單方法講解

    這篇文章主要介紹了使用Python判斷質(zhì)數(shù)(素?cái)?shù))的簡(jiǎn)單方法講解,經(jīng)常被用來做科學(xué)計(jì)算的Python處理這種小問題當(dāng)然手到擒來^_-需要的朋友可以參考下
    2016-05-05
  • python列表中刪除重復(fù)元素的三種方法

    python列表中刪除重復(fù)元素的三種方法

    本文主要介紹了python列表中刪除重復(fù)元素的三種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 一文教會(huì)你用nginx+uwsgi部署自己的django項(xiàng)目

    一文教會(huì)你用nginx+uwsgi部署自己的django項(xiàng)目

    uWSGI是一個(gè)Web服務(wù)器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,下面這篇文章主要給大家介紹了關(guān)于用nginx+uwsgi部署自己的django項(xiàng)目的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的全過程

    Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的全過程

    之前零散的用過一點(diǎn)python做數(shù)據(jù)處理,這次又遇到一個(gè)數(shù)據(jù)處理的小功能,下面這篇文章主要給大家介紹了關(guān)于Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Python爬蟲數(shù)據(jù)的分類及json數(shù)據(jù)使用小結(jié)

    Python爬蟲數(shù)據(jù)的分類及json數(shù)據(jù)使用小結(jié)

    這篇文章主要介紹了Python爬蟲數(shù)據(jù)的分類及json數(shù)據(jù)使用小結(jié),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python 字符串常用方法匯總詳解

    python 字符串常用方法匯總詳解

    這篇文章主要介紹了python 字符串方法匯總詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 利用Python實(shí)現(xiàn)快捷操作文件和文件夾

    利用Python實(shí)現(xiàn)快捷操作文件和文件夾

    shutil是Python標(biāo)準(zhǔn)庫中的一個(gè)模塊,提供了許多用于文件和文件夾操作的高級(jí)接口,本文主要詳細(xì)介紹了Python如何使用shutil實(shí)現(xiàn)快捷操作文件和文件夾,需要的可以參考下
    2024-02-02
  • gethostbyaddr在Python3中引發(fā)UnicodeDecodeError

    gethostbyaddr在Python3中引發(fā)UnicodeDecodeError

    本文介紹了gethostbyaddr()在Python?3中引發(fā)UnicodeDecodeError的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-05-05
  • Python獲取對(duì)象屬性的幾種方式小結(jié)

    Python獲取對(duì)象屬性的幾種方式小結(jié)

    這篇文章主要介紹了Python獲取對(duì)象屬性的幾種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Jupyter Notebook安裝及使用方法解析

    Jupyter Notebook安裝及使用方法解析

    這篇文章主要介紹了Jupyter Notebook安裝及使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

潜山县| 卓尼县| 思南县| 安吉县| 确山县| 湄潭县| 永平县| 旺苍县| 蒲城县| 金堂县| 襄樊市| 东宁县| 富平县| 双牌县| 双城市| 沙湾县| 康马县| 惠东县| 宁国市| 九龙城区| 仲巴县| 福州市| 太保市| 安陆市| 建宁县| 东乡族自治县| 土默特右旗| 莱芜市| 盖州市| 巴马| 邳州市| 宜宾县| 乳源| 巨野县| 肥乡县| 马尔康县| 铜山县| 老河口市| 太仓市| 成武县| 岳池县|