Lock vs Rlock in Python
Master Python with 70+ Hands-on Projects and Get Job-ready - Learn Python
Program 1
# Difference between Lock and RLock
import time
from threading import *
# l=RLock()
# def printTable(n):
# l.acquire()
# l.acquire()
# for i in range(1,11):
# print(n*i)
# time.sleep(1)
# l.release()
# l.release()
# # def display(n):
# # l=Lock()
# # l.acquire()
# # printTable(n)
# # l.release()
# #Calling (Main Thread)
# T1=Thread(target=printTable,args=(5,),name="First")
# T2=Thread(target=printTable,args=(8,),name="Second")
# T1.start()
# T2.start()
# T1.join()
# T2.join()
# Object Oriented Code (Has A Relation)
# l=RLock()
# class MyTable:
# def printTable(self,n):
# l.acquire()
# l.acquire()
# for i in range(1,11):
# print(n*i)
# time.sleep(1)
# l.release()
# l.release()
# #Main Thread
# MT=MyTable()
# T1=Thread(target=MT.printTable,args=(5,),name="First")
# T2=Thread(target=MT.printTable,args=(8,),name="Second")
# T1.start()
# T2.start()
# T1.join()
# T2.join()
# Object Oriented Code (is A Relation)
l=RLock()
class MyTable:
def printTable(self,n):
l.acquire()
l.acquire()
for i in range(1,11):
print(n*i)
time.sleep(1)
l.release()
l.release()
class MyThread1(Thread):
def run(self):
M=MyTable()
M.printTable(5)
class MyThread2(Thread):
def run(self):
M=MyTable()
M.printTable(10)
#Main Thread
M1=MyThread1()
M2=MyThread2()
M1.start()
M2.start()
M1.join()
M2.join()Program 2
# Semaphore in python
import time
from threading import *
s=Semaphore(3)
def display(n):
s.acquire()
for i in range(1,n+1):
print(current_thread().getName(), i)
time.sleep(1)
s.release()
#Main Thread
T1=Thread(target=display,args=(3,),name="one")
T2=Thread(target=display,args=(10,),name="two")
T3=Thread(target=display,args=(7,),name="three")
T4=Thread(target=display,args=(10,),name="four")
T5=Thread(target=display,args=(13,),name="five")
T6=Thread(target=display,args=(15,),name="six")
T1.start()
T2.start()
T3.start()
T4.start()
T5.start()
T6.start()
T1.join()
T2.join()
T3.join()
T4.join()
T5.join()
T6.join()
We work very hard to provide you quality material
Could you take 15 seconds and share your happy experience on Google

