Вопрос проверяет понимание различий между блокирующими и неблокирующими операциями и их влияния на производительность.
Блокирующие операции останавливают выполнение кода до завершения операции, что может заморозить приложение. Неблокирующие операции используют колбэки или промисы и позволяют приложению продолжать работу во время ожидания результата.
Блокирующие операции — это синхронные операции, которые останавливают выполнение основного потока до своего завершения.
Примеры блокирующих операций:
fs.readFileSync() — синхронное чтение файла
crypto.pbkdf2Sync() — синхронное хеширование
Длительные вычисления в основном потоке
Неблокирующие операции — это асинхронные операции, которые используют колбэки, промисы или async/await.
Преимущества неблокирующих операций:
Не блокируют event loop
Позволяют обрабатывать другие запросы
Улучшают масштабируемость приложения
// Блокирующая операция
const data = fs.readFileSync('file.txt');
console.log(data);
// Неблокирующая операция
fs.readFile('file.txt', (err, data) => {
if (err) throw err;
console.log(data);
});Когда использовать:
Блокирующие: для простых скриптов или инициализации
Неблокирующие: для веб-серверов и высоконагруженных приложений
Уровень
Рейтинг:
2
Сложность:
7
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на Node.js Developer в телеграм