I am pretty new to Python and have a question about threading.
I have one function that is called pretty often. This function starts another function in a new Thread.
def calledOften(id):
    t = threading.Thread(target=doit, args=(id))
    t.start()    
def doit(arg):
    while true:
    #Long running function that is using arg
When calledOften is called everytime a new Thread is created. My goal is to always terminate the last running thread --> At all times there should be only one running doit() Function.
What I tried: How to stop a looping thread in Python?
def calledOften(id):
    t = threading.Thread(target=doit, args=(id,))
    t.start()
    time.sleep(5)
    t.do_run = False
This code (with a modified doit Function) worked for me to stop the thread after 5 seconds. 
but i can not call t.do_run = False before I start the new thread... Thats pretty obvious because it is not defined... 
Does somebody know how to stop the last running thread and start a new one?
Thank you ;)
 
    