Asincronía (programación informática) - Asynchrony (computer programming)
La asincronía , en la programación de computadoras , se refiere a la ocurrencia de eventos independientes del flujo principal del programa y las formas de lidiar con tales eventos. Estos pueden ser eventos "externos", como la llegada de señales , o acciones instigadas por un programa que tienen lugar al mismo tiempo que la ejecución del programa, sin que el programa se bloquee para esperar resultados. La entrada / salida asíncrona es un ejemplo del último caso de asincronía y permite que los programas emitan comandos a los dispositivos de almacenamiento o de red que atienden estas solicitudes mientras el procesador continúa ejecutando el programa. Hacerlo proporciona cierto grado de paralelismo .
Una forma común de tratar la asincronía en una interfaz de programación es proporcionar subrutinas que devuelvan un futuro o una promesa que represente la operación en curso, y una operación de sincronización que se bloquee hasta que se complete el futuro o la promesa. Algunos lenguajes de programación, como Cilk , tienen una sintaxis especial para expresar una llamada a procedimiento asincrónica.
Entre los ejemplos de asincronía se incluyen los siguientes:
- Llamada a procedimiento asincrónico , un método para ejecutar un procedimiento al mismo tiempo, una alternativa ligera a Threads .
- Ajax es un conjunto de tecnologías web del lado del cliente que se utilizan para crear aplicaciones web de E / S asíncronas .
- Despacho de método asincrónico (AMD), un método de comunicación de datos que se utiliza cuando existe la necesidad de que el lado del servidor maneje una gran cantidad de solicitudes de clientes de larga duración. Al utilizar el envío de método síncrono (SMD), este escenario puede convertir el servidor en un estado de ocupado no disponible, lo que da como resultado una respuesta de falla de conexión causada por un tiempo de espera de solicitud de conexión de red . El servicio de una solicitud de cliente se envía inmediatamente a un subproceso disponible de un grupo de subprocesos y el cliente se coloca en un estado de bloqueo. Una vez finalizada la tarea, el servidor recibe una devolución de llamada. El servidor desbloquea al cliente y transmite la respuesta al cliente. En caso de falta de subprocesos, los clientes se bloquean esperando que los subprocesos estén disponibles.