August 2015
Intermediate to advanced
286 pages
5h 42m
English
If we want only the thread that acquires a lock to release it, we must use a RLock() object. Similar to the Lock() object, the RLock() object has two methods: acquire() and release(). RLock() is useful when you want to have a thread-safe access from outside the class and use the same methods from inside the class.
In the sample code, we introduced the Box class, which has the methods add() and remove(), respectively, that provide us access to the execute() method so that we can perform the action of adding or deleting an item, respectively. Access to the execute() method is regulated by RLock():
import threading import time class Box(object): lock = threading.RLock() def __init__(self): self.total_items ...
Read now
Unlock full access