threading.Event() используется для сигнализации между потоками.
  .set(): Устанавливает внутренний флаг события в True, разблокируя все ожидающие потоки..clear(): Сбрасывает флаг в False, блокируя последующие .wait() вызовы..wait([timeout]): Блокирует поток, пока флаг не станет True (или истечет таймаут).threading.Event() - это простой способ сигнализировать между потоками в Python.  Он позволяет одному или нескольким потокам ждать, пока другой поток не установит флаг события.
Основные методы:
Event(): Конструктор, создает объект события. Изначально внутренний флаг установлен в False.set(): Устанавливает внутренний флаг события в True.  Все потоки, которые ожидают события (через wait()), будут разблокированы.clear(): Сбрасывает внутренний флаг события в False. Потоки, ожидающие события, будут заблокированы, пока флаг снова не будет установлен.wait(timeout=None): Блокирует вызывающий поток до тех пор, пока внутренний флаг события не станет True или не истечет необязательный тайм-аут. Возвращает True, если событие было установлено до истечения тайм-аута, и False в противном случае. Если тайм-аут не указан, поток блокируется бесконечно.is_set(): Возвращает True, если внутренний флаг установлен, и False в противном случае.Пример использования:
import threading
import time
def worker(event, worker_id):
    print(f"Поток {worker_id}: Жду события...")
    event.wait() # Блокирует поток до тех пор, пока event.set() не будет вызван
    print(f"Поток {worker_id}: Событие произошло! Продолжаю работу...")
def main():
    event = threading.Event()
    # Создаем и запускаем несколько потоков-работников
    threads = []
    for i in range(3):
        thread = threading.Thread(target=worker, args=(event, i))
        threads.append(thread)
        thread.start()
    # Ждем немного времени
    time.sleep(2)
    # Устанавливаем событие
    print("Основной поток: Устанавливаю событие...")
    event.set() # Разблокирует все потоки, ждущие события
    # Ждем завершения потоков
    for thread in threads:
        thread.join()
    print("Основной поток: Все потоки завершили работу.")
if __name__ == "__main__":
    main()
  Описание примера:
worker представляет поток, который ждет установки события с помощью event.wait().Event и запускает несколько потоков-работников.event.set(), чтобы установить событие.thread.join().Применение:
threading.Event() полезен в ситуациях, когда один или несколько потоков должны ожидать определенного события, прежде чем продолжить свою работу. Например:
В целом, threading.Event() - это простой и эффективный способ синхронизации потоков в Python, особенно когда требуется односторонняя сигнализация (один поток сигнализирует другим).