欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

python 做多線程編程時(shí),多個(gè)線程若同時(shí)訪問(wèn)某個(gè)變量,可能會(huì)對(duì)變量數(shù)據(jù)造成破壞,pyhon中的threading模塊提供了lock對(duì)象,lock中的acquire方法用于獲取一個(gè)鎖,而release用于釋放一個(gè)鎖。當(dāng)一個(gè)線程取得鎖時(shí),它變獲得了共享變量的訪問(wèn)權(quán),此時(shí)進(jìn)入阻塞狀態(tài),若其它線程申請(qǐng)?jiān)L問(wèn)這個(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è)線程想多次獲取資源訪問(wèn)權(quán),在上面的程序中連續(xù)兩次使用acquire() ,將會(huì)造成死鎖現(xiàn)象,因?yàn)榈谝淮紊暾?qǐng)到的資源還沒(méi)有來(lái)得及釋放,就進(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使用鎖訪問(wèn)共享變量實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • pytorch動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)(擬合)實(shí)現(xiàn)

    pytorch動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)(擬合)實(shí)現(xiàn)

    這篇文章主要介紹了pytorch動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)(擬合)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python tkinter中的錨點(diǎn)(anchor)問(wèn)題及處理

    python tkinter中的錨點(diǎn)(anchor)問(wèn)題及處理

    這篇文章主要介紹了python tkinter中的錨點(diǎn)(anchor)問(wèn)題及處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘

    Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘

    這篇文章主要為大家介紹了Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python適合做數(shù)據(jù)挖掘嗎

    python適合做數(shù)據(jù)挖掘嗎

    在本篇文章里小編給各位分享的是一篇關(guān)于python做數(shù)據(jù)挖掘的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • pandas?groupby?用法實(shí)例詳解

    pandas?groupby?用法實(shí)例詳解

    在日常數(shù)據(jù)分析過(guò)程中,經(jīng)常有分組的需求。具體來(lái)說(shuō),就是根據(jù)一個(gè)或者多個(gè)字段,將數(shù)據(jù)劃分為不同的組,然后進(jìn)行進(jìn)一步分析,比如求分組的數(shù)量,分組內(nèi)的最大值最小值平均值等,下面我們就來(lái)看看pandas中的groupby怎么使用,需要的朋友可以參考下
    2022-11-11
  • python機(jī)器學(xué)習(xí)混淆矩陣及confusion?matrix函數(shù)使用

    python機(jī)器學(xué)習(xí)混淆矩陣及confusion?matrix函數(shù)使用

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)混淆矩陣confusion_matrix函數(shù)使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python辦公自動(dòng)化PPT批量轉(zhuǎn)換操作

    Python辦公自動(dòng)化PPT批量轉(zhuǎn)換操作

    本文介紹如何使用 python 操作 PPT,用到的模塊就是 python-pptx,以下的示例基本滿足日常需求,如果要知道更多,可以訪問(wèn) python-pptx 的官方文檔
    2021-09-09
  • Python基礎(chǔ) while循環(huán)與break、continue關(guān)鍵字

    Python基礎(chǔ) while循環(huán)與break、continue關(guān)鍵字

    今天再帶著大家講述一下while循環(huán)。那么for循環(huán)和while循環(huán),到底有什么區(qū)別呢?下面文章就來(lái)詳細(xì)介紹,感興趣的小伙伴可以參考一下
    2021-10-10
  • Python之is與==的區(qū)別詳解

    Python之is與==的區(qū)別詳解

    這篇文章主要介紹了Python之is與==的區(qū)別詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Pytorch如何把Tensor轉(zhuǎn)化成圖像可視化

    Pytorch如何把Tensor轉(zhuǎn)化成圖像可視化

    這篇文章主要介紹了Pytorch如何把Tensor轉(zhuǎn)化成圖像可視化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論