В контексте движков Javascript на стороне сервера, что такое неблокирующий ввод-вывод или асинхронный ввод-вывод? Я вижу, что это упоминается как преимущество над реализациями на стороне сервера Java.
Что такое неблокирующий или асинхронный ввод-вывод в Node.js?
Ответ 1
Синхронный и асинхронный
Синхронное выполнение обычно ссылается на выполнение кода в последовательности. Асинхронное выполнение относится к выполнению, которое не выполняется в последовательности, появляющейся в коде. В следующем примере синхронная операция приводит к тому, что предупреждения срабатывают последовательно. В асинхронной операции, когда alert(2)
, как представляется, выполняет второе, это не так.
Синхронный: 1,2,3
alert(1);
alert(2);
alert(3);
Ответ 2
var startTime = new Date().getTime();
var getEndTime = () => {
var tempEndTime = new Date().getTime();
var second = (tempEndTime - startTime)/1000
return `took ${second} sec...to finish\n`
}
console.log('1: start App', getEndTime())
setTimeout(()=>{
console.log('2: setTimeout', getEndTime())
}, 1000)
console.log('3: End App', getEndTime())
// console -> Process Order: 1 -> 3 -> 2