time.sleep() остановливает весь поток целиком, блокирует выполнение других операций на заданное время.
В asyncio есть своя реализация метода sleep, которая остановливает выполнение корутины, позволяя передать контекст другим корутинам.
Если вам нужно оборвать выполнение программы при достижении определенного условия. Вы можете это сделать при помощи потоков.
Синхронная реализация
from threading import Thread
import time
class CustomThread(Thread):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.is_running = True
def run(self):
while self.is_running:
if "" == 'first choice':
time.sleep(5)
if "" == 'second choice':
# Do something
time.sleep(5)
def terminate(self):
self.is_running = False
thread = CustomThread(daemon=True)
thread.start() # Запускаем thread
thread.terminate() # Останавливаем thread