¿Qué es la E / S no bloqueante o asíncrona en Node.js?

En el contexto de los motores Javascript de Server Side, ¿qué es E / S sin locking o E / S asíncrona? Veo que esto se menciona como una ventaja sobre las implementaciones del lado del servidor Java.

    Sincrónico vs Asíncrono

    La ejecución síncrona generalmente se refiere al código que se ejecuta en secuencia. La ejecución asincrónica se refiere a la ejecución que no se ejecuta en la secuencia que aparece en el código. En el siguiente ejemplo, la operación síncrona hace que las alertas se disparen en secuencia. En la operación asincrónica, mientras que la alert(2) parece ejecutarse en segundo lugar, no es así.

    Sincrónico: 1,2,3

     alert(1); alert(2); alert(3); 
     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 

    Ejemplo de código