Jul-13-2019, 07:08 AM
import threading
class Class1(threading.Thread):
def __init__(self, i, j):
self.i = i
self.j = j
def f1(self):
i = self.i
global lock
lock.acquire()
while i<=100:
print(" I is now %d \n" %i)
i=i+1
lock.release()
def f2(self):
j = self.j
global lock
lock.acquire()
while j<=50:
print("J is now %d \n" %j)
j=j+1
lock.release()
def Main1(self):
lock = threading.Lock()
t1=threading.Thread(target=self.f1)
t2=threading.Thread(target=self.f2)
t1.start()
t2.start()
if __name__ == '__main__':
ob=Class1(1,1)
ob.Main1()Getting error in the codeError:Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Python37\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\Python37\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "D:\Python\PythonExamples\Multithreading\SyncThreadingPython.py", line 23, in f2
lock.acquire()
NameError: name 'lock' is not defined
