So I'm trying to get some code running in the background using this snippet I found online. My main problem however is that I'm trying to get it to work without using the time.sleep(3) at the very end and can't seem to figure it out. Any suggestions? Why does it only work with time.sleep(n) at the end?
import threading
import time
class ThreadingExample(object):
    """ Threading example class
    The run() method will be started and it will run in the background
    until the application exits.
    """
    def __init__(self, interval=1):
        """ Constructor
        :type interval: int
        :param interval: Check interval, in seconds
        """
        self.interval = interval
        thread = threading.Thread(target=self.run, args=())
        thread.daemon = True                            # Daemonize thread
        thread.start()                                  # Start the execution
    def run(self):
        """ Method that runs forever """
        while True:
            # Do something
            print('Doing something imporant in the background')
            time.sleep(self.interval)
example = ThreadingExample()
time.sleep(3)
print('Done')
 
     
    