當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python RLock acquire()用法及代碼示例


Python RLock.acquire() 方法

acquire() 是 Python 中線程模塊的 RLock 類的內置方法。

RLock 類對象遵循可重入性。重入鎖必須由獲取它的線程釋放。一旦一個線程獲得了可重入鎖,同一個線程就可以再次獲得它而不會阻塞;並且線程必須在每次獲得它時釋放它一次。獲取方法用於獲取鎖,無論是阻塞的還是非阻塞的。

模塊:

    from threading import RLock

用法:

    acquire( blocking=True, timeout=-1)

參數:

  • blocking:它是一個可選參數,用作阻塞標誌。其默認值為 True。如果,
    • 價值是True:如果線程已經擁有鎖,則將遞歸級別加一並返回;如果另一個線程擁有該鎖,則阻塞直到該線程釋放該鎖。一旦線程被釋放,獲取鎖並將遞歸級別增加一並返回。
    • 價值是False: 不要阻止。
  • timeout:它是一個可選參數,它指定如果其他方法當前正在獲取鎖,調用線程將被阻塞的秒數。它的默認值是 -1,表示線程將被無限期阻塞,直到它獲得鎖。

返回值:

這個方法的返回類型是<class 'bool'>.該方法用於在實現多線程時獲取鎖,如果成功獲取鎖則返回 True,否則返回 False。

例:

# program to illustrate the use of 
# acquire() method in RLock class
  
# importing the module 
import threading 
  
# initializing the shared resource 
x = 0
  
# creating an RLock object  
rlock = threading.RLock() 
  
# Creating first thread
rlock.acquire() 
x = x + 1
  
# the below thread is trying to access  
# the shared resource  
rlock.acquire()  
x = x + 2
rlock.release()

rlock.release() 
# Rlock released by both the threads
  
# displaying the value of shared resource 
print("Displaying the final value of the shared resource x:", x)

輸出

Displaying the final value of the shared resource x:3


相關用法


注:本文由純淨天空篩選整理自 Python RLock Class | acquire() Method with Example。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。