diff --git a/dev/architecture/Event Loop.md b/dev/architecture/Event Loop.md new file mode 100644 index 00000000..345c49e8 --- /dev/null +++ b/dev/architecture/Event Loop.md @@ -0,0 +1,36 @@ +--- +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) +``` \ No newline at end of file diff --git a/meta/files/images/Pasted image 20231026115508.png b/meta/files/images/Pasted image 20231026115508.png new file mode 100644 index 00000000..90d6e3ee Binary files /dev/null and b/meta/files/images/Pasted image 20231026115508.png differ