No. Significa literalmente lo que significa-- asincrónico. Comprender la diferencia entre la programación asincrónica y la programación basada en hilos es fundamental para su éxito como programador.
En un entorno tradicional sin hilos, cuando una función debe esperar en un evento externo (como un evento de red, un evento de teclado o mouse o incluso un evento de reloj), el programa debe esperar esperar evento sucede.
En un entorno de subprocesos múltiples, muchos subprocesos individuales de programación se ejecutan al mismo tiempo. (Dependiendo de la cantidad de CPU y del soporte del sistema operativo, esto puede ser literalmente cierto, o puede ser una ilusión creada por sofisticados algoritmos de programación).Por esta razón, los entornos de subprocesos múltiples son difíciles e involucran problemas de hilos que bloquean la memoria de los demás para evitar que se sobrepasen entre sí.
En un entorno asíncrono, un hilo de proceso único se ejecuta todo el tiempo, pero puede, por razones de eventos (y esa es la clave), cambiar de una función a otra. Cuando ocurre un evento, y cuando el proceso se está ejecutando actualmente realiza un punto en el que se debe esperar a que otro evento, el núcleo Javascript a continuación, analiza la lista de eventos y entrega el siguiente, en un (formalmente) indeterminada (pero probablemente determinista) orden, al gerente de eventos.
Por esta razón, la programación asincrónica basada en eventos evita muchos de los problemas de la programación tradicional, multi-hilo, tales como problemas de contención de memoria. Todavía puede haber condiciones de carrera, ya que el orden en que se manejan los eventos no depende de usted, pero son raros y más fáciles de administrar. Por otro lado, dado que el controlador de eventos no entrega eventos hasta que la función que se está ejecutando actualmente llegue a un punto inactivo, algunas funciones pueden privar al resto de la programación. Esto sucede en Node.js, por ejemplo, cuando las personas tontamente hacen un montón de cálculos pesados en el servidor, lo mejor es meterlo en un pequeño servidor que luego el nodo "espera" para entregar la respuesta. Node.js es una gran pequeña centralita para eventos, pero cualquier cosa que tome más de 100 milisegundos debe manejarse de forma cliente/servidor.
En el entorno del navegador, los eventos DOM se tratan como puntos de evento automáticos (tienen que serlo, la modificación del DOM ofrece muchos eventos), pero incluso el Javascript mal escrito puede privar al núcleo, por lo que ambos Firefox y Chrome tiene estos "Este script ha dejado de responder" los controladores de interrupción.
No, asincronía (ISM?) * No * requiere el paralelismo. –
debajo de las cubiertas hay hilos, pero como programador/consumidor de lenguaje no lo es. – Jason
@Jason no hay hilos debajo de la cubierta. O al menos no tiene que haberlo. – Raynos