EventLoop Flashcards

(1 cards)

1
Q

EventLoop

A

EventLoop - цикл, который синхронизирует колстеки и очереди(выполняет бесконечное количество задач). Цикл - разгружает очередь.
Event loop - это ключ к асинхронному программированию на JavaScript. Сам по себе язык однопоточный, но использование этого механизма позволяет создать дополнительные потоки, чтобы код работал быстрее.
Что же такое event loop? Это обычный цикл, который постоянно следит за стеком и очередью задач. Если стек пуст, цикл берет первый элемент из очереди, помещает его в стек и выполняет. Но очередь у нас не одна, их три: очередь макрозадач, очередь микрозадач и очередь рендеринга (анимации).

Выше приоритет имеет очередь рендеринга, поэтому event looр, в первую очередь будет брать таски из нее, но он каждый раз запоминает сколько тасок есть на момент старта и после их выполнения будет брать одну таску из макро задач, если даже в очередь рендеринга придут новые.
Если рассматривать еще и работу очереди микротасок - то у этой очереди приоритет самый
большой, причем, если во время выполнения тасок из этой очереди будут поступать новые таски то event loop не будет обращать внимание на другие две и постоянно брать таски только из нее.

https://www.jsv9000.app/
http://latentflip.com/loupe/?code=Y29uc29sZS5sb2coJ2EnKQogCnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogIGNvbnNvbGUubG9nKCd0aW1lb3V0JykKfSwgMTAwMCkKIApjb25zb2xlLmxvZygnYicpCiAKY29uc29sZS5sb2coJ2MnKQ%3D%3D!!!PGJ1dHRvbj5DbGljayBtZSE8L2J1dHRvbj4%3D

How well did you know this?
1
Not at all
2
3
4
5
Perfectly