Python Lock.locked() 方法
locked() 是 Python 中线程模块的 Lock 类的内置方法。
如果锁是由线程获取的,则此方法返回 True,否则返回 False。
模块:
from threading import Lock
用法:
locked()
参数:
- None
返回值:
这个方法的返回类型是<class 'bool'>
.它返回 True 是当前获取的锁,否则返回 False。
例:
# Python program to show
# the use of locked() method in Lock class
import threading
import random
class shared(object):
def __init__(self, x = 0):
# Created a Lock object
self.lock = threading.Lock()
self.incr = x
# Increment function for the thread
def incrementcounter(self):
print("Waiting for the lock to be unlocked")
# Lock acquired by the current thread
self.lock.acquire()
print("Is the lock acquired here:", self.lock.locked())
try:
print('Lock acquired, current counter value:', self.incr)
self.incr = self.incr + 1
print("Is the lock acquired here as well:", self.lock.locked())
finally:
print('Lock released, current counter value:', self.incr)
# Lock released by the given thread
self.lock.release()
print("Is the lock acquired here after release:", self.lock.locked())
def helper_thread(c):
# Getting a random integer between 1 to 3
r = random.randint(1,3)
print("Random value selected:", r)
for i in range(r):
c.incrementcounter()
print('Finished', str(threading.current_thread().getName()))
print()
if __name__ == '__main__':
obj = shared()
thread1 = threading.Thread(target=helper_thread, args=(obj,))
thread1.start()
thread2 = threading.Thread(target=helper_thread, args=(obj,))
thread2.start()
thread1.join()
thread2.join()
print('Final counter value:', obj.incr)
输出
Waiting for the lock to be unlocked Is the lock acquired here:True Lock acquired, current counter value: 0 Is the lock acquired here as well:True Lock released, current counter value: 1 Is the lock acquired here after release:False Finished Thread-1 Random value selected:3 Waiting for the lock to be unlocked Is the lock acquired here:True Lock acquired, current counter value: 1 Is the lock acquired here as well:True Lock released, current counter value: 2 Is the lock acquired here after release:False Waiting for the lock to be unlocked Is the lock acquired here:True Lock acquired, current counter value: 2 Is the lock acquired here as well:True Lock released, current counter value: 3 Is the lock acquired here after release:False Waiting for the lock to be unlocked Is the lock acquired here:True Lock acquired, current counter value: 3 Is the lock acquired here as well:True Lock released, current counter value: 4 Is the lock acquired here after release:False Finished Thread-2 Final counter value:4
相关用法
- Python Lock acquire()用法及代码示例
- Python Lock release()用法及代码示例
- Python List remove()用法及代码示例
- Python List clear()用法及代码示例
- Python List pop()用法及代码示例
- Python List index()用法及代码示例
- Python List sort()用法及代码示例
- Python List count()用法及代码示例
- Python List reverse()用法及代码示例
- Python List copy()用法及代码示例
- Python List extend()用法及代码示例
- Python numpy.less()用法及代码示例
- Python Sympy Permutation.list()用法及代码示例
- Python Matplotlib.figure.Figure.subplots_adjust()用法及代码示例
- Python numpy.tril()用法及代码示例
- Python Matplotlib.pyplot.matshow()用法及代码示例
- Python __file__用法及代码示例
- Python Pandas Panel.add()用法及代码示例
- Python Matplotlib.axis.Tick.get_window_extent()用法及代码示例
- Python numpy.fromstring()用法及代码示例
注:本文由纯净天空筛选整理自 Python Lock Class | locked() Method with Example。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。