亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

詳解Python中的Lock和Rlock

瀏覽:2日期:2022-06-29 10:14:39

線程是進程中可以調度執行的實體。而且,它是操作系統中可以執行的最小處理單元。簡單地說,一個線程就是一個程序中可以獨立于其他代碼執行的指令序列。為了簡單起見,你可以假設線程只是進程的子集!

Locks

鎖是Python中用于同步的最簡單的方式。鎖有兩種狀態:上鎖、釋放鎖。

鎖是線程模塊中的一個類,有兩個主要方法:acquire()和release() 當調用acquire()方法時,它鎖定鎖的執行并阻塞鎖的執行,直到其他線程調用release()方法將其設置為解鎖狀態。鎖幫助我們有效地訪問程序中的共享資源,以防止數據損壞,它遵循互斥,因為一次只能有一個線程訪問特定的資源。

讓我們看看下面的例子來理解鎖的使用:

import threading #創建一個lock對象lock = threading.Lock() #初始化共享資源abce = 0 def sumOne(): global abce #鎖定共享資源 lock.acquire() abce = abce + 1 #釋放共享資源 lock.release() def sumTwo(): global abce #鎖定共享資源 lock.acquire() abce = abce + 2 #釋放共享資源 lock.release() #調用函數 sumOne()sumTwo()print(abce)

在上面的程序中,lock是一個鎖對象,全局變量abce是一個共享資源,sumOne()和sumTwo()函數扮作兩個線程,在sumOne()函數中共享資源abce首先被鎖定,然后增加了1,然后abce被釋放。sumTwo()函數執行類似操作。 兩個函數sumOne()和sumTwo()不能同時訪問共享資源abce,一次只能一個訪問共享資源。

RLocks

默認的lock不能識別lock當前被哪個線程持有。如果任何線程正在訪問共享資源,那么試圖訪問共享資源的其他線程將被阻塞,即使鎖定共享資源的線程也是如此。 在這些情況下,可重入鎖(或RLock)用于防止訪問共享資源時出現不必要的阻塞。如果共享資源在RLock中,那么可以安全地再次調用它。 RLocked資源可以被不同的線程重復訪問,即使它在被不同的線程調用時仍然可以正常工作。

讓我們看看下面的例子來理解RLocks的使用:

import threading #創建一個lock對象lock = threading.Lock() #初始化共享資源abce = 0 #本線程訪問共享資源lock.acquire()abce = abce + 1 #這個線程訪問共享資源會被阻塞lock.acquire()abce = abce + 2lock.release() print(abce)

在上面的程序中,兩個線程同時嘗試訪問共享資源abce,這里當一個線程當前正在訪問共享資源abce時,另一個線程將被阻止訪問它。 當兩個或多個線程試圖訪問相同的資源時,有效地阻止了彼此訪問該資源,這就是所謂的死鎖,因此上述程序沒有生成任何輸出。

但是,在程序中上述問題可以通過使用RLock來解決。

import threading #創建一個rlock對象lock = threading.RLock() #初始化共享資源abce = 0 #本線程訪問共享資源lock.acquire()abce = abce + 1 #這個線程嘗試訪問共享資源lock.acquire()abce = abce + 2lock.release() print(abce)

在這里,沒有阻止程序中的線程訪問共享資源abce。 對于RLock對象鎖的每個acquire(),我們需要調用release()一次。

從上面提到的眾多程序和解釋中,在Python中一個Lock對象和一個RLock對象有很多區別:

locks rlocks lock對象無法再被其他線程獲取,除非持有線程釋放 rlock對象可以被其他線程多次獲取 lock對象可被任何線程釋放 rlock對象只能被持有的線程釋放 lock對象不可以被任何線程擁有 rlock對象可以被多個線程擁有 對一個對象鎖定是很快的 對一個對象加rlock比加lock慢

以上就是詳解Python中的Lock和Rlock的詳細內容,更多關于Python中Lock和Rlock的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 久久看视频 | 99av在线播放| 97视频在线观看视频在线精品 | 亚洲国产成人成上人色 | 黄播视频| 亚洲美女亚洲精品久久久久 | 欧美啪啪毛片一区二区 | 国产精品欧美一区二区在线看 | 成人午夜视频免费 | 激情欧美成人狠狠色金八天国 | 国产精品第页 | 亚欧美图片自偷自拍另类 | 激情亚洲| 欧美三级视频 | 欧美国产综合视频 | 亚洲天堂一区二区三区四区 | 久久日本精品99久久久久 | 久久www免费人成看片色多多 | 一级做a级爰片性色毛片视频 | 国产免费福利视频一区二区 | 国产免费1000拍拍拍 | 亚洲六月丁香六月婷婷蜜芽 | 欧美一级性 | 国产精品人体私拍99pans | 搡女人的高清免费视频 | 亚洲国产成人在线观看 | 性色a按摩videos | 国产女主播一区二区在线观看 | 伊人中文字幕在线观看 | 亚洲欧美一区二区三区九九九 | 国产成人精品区在线观看 | a级毛片免费在线观看 | 综合亚洲网 | 午夜hhh视频在线观看hhhh | 国产精品热久久毛片 | 日本护士xxxxxwww | 中国一级黄色大片 | 日韩成人中文字幕 | 国产精品自拍在线观看 | 三级免费黄色片 | 国产欧美另类久久久精品免费 |