--- aliases: tags: - maturity/🌱 date: "[[2023-10-26]]" zero-link: - "[[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]" parents: - "[[Реактивное программирование]]" linked: --- По сути, Event Loop - это реализация [шаблона Reactor](http://design-pattern.ru/patterns/reactor.html). Является неблокирующим потоком ввода-вывода, который работает непрерывно. Его основная задача — проверка новых событий. И как только событие пришло перенаправлять его тому, кто в данный момент может его обработать. Иногда их может быть несколько для увеличения производительности.  ![](../../meta/files/images/Pasted%20image%2020231026115508.png) Выше приведён абстрактный дизайн цикла событий, который представляет идеи реактивного асинхронного программирования: - Цикл событий выполняется непрерывно в одном потоке, хотя у нас может быть столько циклов событий, сколько доступно [[../fundamental/Ядро процессора|ядер]]. - Цикл событий последовательно обрабатывает события из очереди событий и возвращается сразу после регистрации [[../../../../_inbox/Callback|обратного вызова]] в платформе. - Платформа может инициировать завершение операции, такой как вызов базы данных или вызов внешней службы. - Цикл событий может запускать обратный вызов при уведомлении о завершении операции и отправлять результат обратно исходному вызывающему. *** ## Мета информация **Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]] **Родитель**:: [[../../../../knowledge/dev/Реактивное программирование|Реактивное программирование]] **Источник**:: **Автор**:: **Создана**:: ### Дополнительные материалы - ### Дочерние заметки ```dataview LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) ```