Якщо ви виконуєте інтенсивне завдання введення-виведення в Node.js, наприклад, деякі операції бази даних async, використовуйте вузлові волокна, це блокування?
Я не використовував вузлових волокон ще б / с здається, що- якщо використовується в коді, який обробляє HTTP-запит, в якому виконується деякий довгий нормально-неблокуючий код введення-виведення - тепер він запобігає доступу інших запитів до вашої програми. Це правда чи ні? Трохи докладно розповісти про те, чому це правда / невірно.
Відповіді:
1 для відповіді № 1Волокна дозволяють програмісту писати "ниткоподібні"код блокування-заяви JavaScript. Але її реалізація не блокує, код еквівалентний коду асинхронних подій node.js. Реалізація Laverdets призупиняє виконання волокон в певний момент, подібно до моделі async node.js, і може бути відновлена пізніше.
Волокна більше синтаксичного цукру, їх немаєзмінити асинхронну модель node.js. Єдина відмінність полягає в тому, що волокна створюють різні стеки виконання (якщо я правильний), що є незначним навантаженням на нормальний код async nodejs.