Python Multithreading--Part3 when multiple thread calling one method of code simulteniously then Lock(), acquire() and release() method will do synchronisation....
# -*- coding: utf-8 -*-
"""
Created on Fri Sep 30 14:01:03 2022
@author: Mahesh.Keshniya
Python Multithreading--Part3
when multiple thread calling one method of code simulteniously then Lock(), acquire() and release() method will
do synchronisation....
"""
from threading import *
class Myclass:
def __init__(self,totalTicket):
self.totalTicket=totalTicket
self.lock=Lock() # locking
def bookTicket(self,NeedToBookTicket):
self.lock.acquire() # locking start
print(f"Total Ticket Required by Thread/Customer Name{current_thread().name} is :{NeedToBookTicket}")
if(NeedToBookTicket<=self.totalTicket):
print(f"Ticket Boocked for Thread/Customer: {current_thread().name}")
self.totalTicket -=1
else:
print(f"No seat available now")
self.lock.release() #lockingrelease
if __name__ == "__main__":
x=2
Obj = Myclass(x)
print("Total Available Ticket :",x)
t1 = Thread(target = Obj.bookTicket , args=(1,),name= "Customer_01" )
t2 = Thread(target=Obj.bookTicket, args=(1,), name="Customer_02")
t3 = Thread(target=Obj.bookTicket, args=(1,), name="Customer_03")
t4 = Thread(target=Obj.bookTicket, args=(1,), name="Customer_04")
t1.start()
t2.start()
t3.start()
t4.start()
Comments
Post a Comment