当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。