I have been trying to find a good way to implement synchronisation in Python. Is the following code alright? If no, then what is wrong with it and how can I improve it?
import threading
class BookingService(threading.Thread):
# so lock remains static to the class and would be same for all the threads
lock = None
def __init__(self,name):
threading.Thread.__init__(self)
self.name = name
if BookingService.lock == None:
BookingService.lock = threading.Lock()
def book(self):
with BookingService.lock:
print("BOOKED! for",self.name)
b1 = BookingService("b1")
b2 = BookingService("b2")
b1.book()
b2.book()
Read about threading module and various ways by which we can do it.