This commit is contained in:
parent
55da6e483a
commit
1075cfc688
36
dev/architecture/Event Loop.md
Normal file
36
dev/architecture/Event Loop.md
Normal file
@ -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)
|
||||||
|
```
|
BIN
meta/files/images/Pasted image 20231026115508.png
Normal file
BIN
meta/files/images/Pasted image 20231026115508.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 882 KiB |
Loading…
Reference in New Issue
Block a user