Python time.sleep () vs event.wait ()

Quero executar uma ação em um intervalo regular no meu aplicativo Python multiencadeado. Eu vi duas maneiras diferentes de fazer isso

exit = False
def thread_func(): 
    while not exit:
       action()
       time.sleep(DELAY)

ou

exit_flag = threading.Event()
def thread_func(): 
    while not exit_flag.wait(timeout=DELAY):
       action()

Existe uma vantagem de uma maneira sobre a outra? Alguém usa menos recursos ou joga melhor com outros tópicos e com o GIL? Qual deles torna os threads restantes no meu aplicativo mais responsivos?

(Suponha que alguns conjuntos de eventos externosexit ouexit_flag, e estou disposto a aguardar o atraso completo ao desligar)

questionAnswers(3)

yourAnswerToTheQuestion