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 code
Error: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