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

python使用鎖訪問共享變量實例解析

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

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

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

#!/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() 

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

#!/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() 

總結

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

相關文章

  • 使用Python判斷質數(shù)(素數(shù))的簡單方法講解

    使用Python判斷質數(shù)(素數(shù))的簡單方法講解

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

    python列表中刪除重復元素的三種方法

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

    一文教會你用nginx+uwsgi部署自己的django項目

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

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

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

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

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

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

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

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

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

    gethostbyaddr在Python3中引發(fā)UnicodeDecodeError

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

    Python獲取對象屬性的幾種方式小結

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

    Jupyter Notebook安裝及使用方法解析

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

最新評論

赤城县| 玉林市| 宜昌市| 德阳市| 井陉县| 正宁县| 定南县| 都昌县| 德化县| 田阳县| 玛曲县| 且末县| 正定县| 湾仔区| 新源县| 恩施市| 肃南| 祁阳县| 仪征市| 阿鲁科尔沁旗| 南江县| 广水市| 凌源市| 北川| 普陀区| 巧家县| 库车县| 华安县| 乐都县| 高雄市| 满洲里市| 乐平市| 澄迈县| 青河县| 弥勒县| 衡水市| 丰宁| 金昌市| 灵寿县| 万源市| 徐水县|