Python – Run two threads and stop them

In this post i extend an example found on stackoverflow.com, here’s how to launch two simultaneous threads and stop them after 5 seconds.

import threading
import time


def doit(arg):
    t = threading.currentThread()
    while getattr(t, "do_run", True):
        print ("working on %s" % arg)
        time.sleep(1)
    print("Stopping as you wish.")
    
def main():
    t1 = threading.Thread(target=doit, args=("task 1",))    
    t1.start()    
    t2 = threading.Thread(target=doit, args=("task 2",))    
    t2.start()
    time.sleep(5)
    t1.do_run = False
    t1.join()
    t2.do_run = False
    t2.join()

if __name__ == "__main__":
    main()

Leave a Comment

Your email address will not be published. Required fields are marked *