В Node.js мы много говорим о цикле событий, поэтому я хочу знать, в каком цикле событий мы говорим, цикл событий Javascript или цикл событий libuv? Я полагаю, что цикл событий libuv обеспечивает абстракцию для нескольких операционных систем мультиплексирования ввода/вывода? Я прав? Если не так, пожалуйста, объясните, как это работает? Мне нужны некоторые внутренние знания, я знаю, что такое цикл событий, я просто хочу знать, как он связан?Что такое среднее по циклу событий в node.js? javascript цикл событий или цикл событий libuv?
ответ
В настоящее время Node использует цикл событий, предоставляемый libuv, а именно его цикл событий по умолчанию: uv_default_loop()
. См: An Introduction to libuv по Nikhil Marathe:
петли по умолчанию обеспечивается libuv и могут быть доступны с помощью uv_default_loop(). Вы должны использовать этот цикл, если вам нужен только один цикл .
Примечание: node.js использует цикл по умолчанию в качестве основного цикла. Если вы используете написание привязок, вы должны знать об этом.
Существует linuv схема архитектуры на Design overview странице в документации libuv API:
В прошлом цикл событий libev был использован в узле. См Understanding the node.js event loop по Mikito Такадой:
Внутри node.js полагается на libev, чтобы обеспечить цикл событий, который дополняется libeio, которая использует объединенные потоки для обеспечения асинхронного ввода/вывода. Чтобы узнать еще больше, ознакомьтесь с документацией libev .
Некоторые хорошие ресурсы на цикл событий Node:
- Understanding the node.js event loop по Mikito Такада
- Understanding node.js Феликса Geisendörfer
- Understanding the Node.js Event Loop Тревором Норрис
- Node.js itself is blocking, only its I/O is non-blocking Джереми Эпштейна
- An Introduction to libuv автор Nikhil Marathe
- The libuv API documentation
Благодаря Saúl Ибарра Corretgé для разъяснения в комментариях.
Это неверно. libuv не использовал libev уже много лет. Кроме того, даже когда это было сделано, диаграмма все равно была бы неправильной, потому что теги не используются для ввода/вывода в сети, просто для операций с файловой системой и getaddrinfo. Вы можете найти правильную блок-диаграмму в официальной документации libuv: http://docs.libuv.org/en/v1.x/design.html – saghul
@saghul Большое спасибо за разъяснение. Я обновил свой ответ. Если что-то еще нуждается в исправлении, сообщите мне. Благодарю. – rsp
Лучше сейчас :-) Использование 'uv_default_loop' также может измениться и в будущем с введением нескольких изолятов, но в настоящий момент оно истинно. Спасибо за обновление ответа! – saghul
- 1. Что такое цикл событий или цикл цикла?
- 2. libuv - цикл событий и потоки
- 3. Node.js EventEmitter событий, не разделяя цикл событий
- 4. Цикл событий Node.js - nginx/apache
- 5. Когда завершается цикл событий node.js?
- 6. Что такое цикл событий в Qt?
- 7. Цикл событий Javascript. Разъяснение необходимости
- 8. Что делает цикл событий открытым при прослушивании событий ввода-вывода?
- 9. Цикл событий в java
- 10. history.js бесконечный цикл событий
- 11. Как реализован цикл событий в node.js?
- 12. setInterval и цикл событий
- 13. В Node.js, setTimeout() блокирует цикл событий?
- 14. Node.js: блокирует ли JSON.parse цикл событий?
- 15. Угловая - предотвращает цикл событий?
- 16. jQuery цикл событий
- 17. Жизненный цикл событий Drools
- 18. Цикл заблокированных событий Qt
- 19. Возможно ли переупорядочить цикл событий node.js?
- 20. Цикл событий производительности Nodejs
- 21. Node.js - цикл событий и ошибки внутреннего сервера
- 22. Цикл прослушивателя событий
- 23. Бесконечный цикл событий
- 24. QThread блокирует цикл событий
- 25. Длительный цикл событий Node.js разбивает весь код
- 26. Почему цикл while блокирует цикл событий узла?
- 27. Цикл событий QT в dll
- 28. цикл событий libuv: подготовить дескриптор и проверить использование дескриптора
- 29. Управление цикл событий в потоке
- 30. CheckBox цикл событий в asp.net
В каком контексте? Какая разница, если бы это было так или иначе? – Bergi
Что вы подразумеваете под «циклом событий JavaScript»? Тот, который у нас есть в браузере? – jjm
Да, это js event loop :) @jjm –