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)