Я хочу выполнить действие с регулярным интервалом в многопоточном приложении Python. Я видел два разных способа сделать это
exit = False
def thread_func():
while not exit:
action()
time.sleep(DELAY)
или
exit_flag = threading.Event()
def thread_func():
while not exit_flag.wait(timeout=DELAY):
action()
Есть ли преимущество в одном направлении над другим? Используете ли вы меньше ресурсов или играете лучше с другими потоками и GIL? Какой из оставшихся потоков в моем приложении более отзывчив?
(Предположим, что некоторые внешние наборы событий exit
или exit_flag
, и я готов дождаться полной задержки при выключении)