вместо .run()
вы должны позвонить .start()
Thread.run()
выполнит код в контексте текущего потока, но Thread.start()
фактически создаст новый поток и запустит код в нем параллельно с существующими потоками.
попробуйте это:
from threading import Thread
import time
class createTemplate:
def __init__(self,PARAM1):
self.PARAM1=PARAM1
def method1(self, arg):
print("Method1-START",arg)
time.sleep(5)
print("Method1-END",arg)
def method2(self,arg):
print("Method2-START",arg)
time.sleep(5)
print("Method2-END",arg)
def final_method(self):
if self.PARAM1=="1":
m1=Thread(target=self.method1, args=("A", )) # <- this is a tuple of size 1
m1.start()
if self.PARAM1=="1":
m2=Thread(target=self.method2, args=("B", )) # <- this is a tuple of size 1
m2.start()