How to end program running after given time in Python
===

I'd like my Python program to run an algorithm for a given number of seconds and then to print the best result so far and to end.

What is the best way to do so?

I tried the following but it did not work(the program kept running after the printing):

    def printBestResult(self):
        print(self.bestResult)
        sys.exit()
    
    def findBestResult(self,time):
        self.t = threading.Timer(time, self.printBestResult)
        self.t.start() 
        
        while(1):
            # find best result