Técnica de programación informática
La asincronía , en programación informática , se refiere a la ocurrencia de eventos independientes del flujo principal del programa y a las formas de lidiar con dichos eventos. Estos pueden ser eventos "externos", como la llegada de señales , o acciones instigadas por un programa que tienen lugar simultáneamente con la ejecución del programa, sin que el programa se cuelgue a esperar resultados. [1] La entrada/salida asincrónica es un ejemplo del último caso de asincronía y permite que los programas emitan comandos a dispositivos de almacenamiento o red que atienden estas solicitudes mientras el procesador continúa ejecutando el programa. Hacerlo proporciona un grado de paralelismo . [1]
Una forma habitual de abordar 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 un procedimiento asincrónico. [2]
Algunos ejemplos de asincronía incluyen los siguientes:
- Llamada a procedimiento asincrónico , un método para ejecutar un procedimiento simultáneamente, una alternativa ligera a los subprocesos .
- Ajax es un conjunto de tecnologías web del lado del cliente que el cliente utiliza para crear aplicaciones web de E/S asincrónicas .
- Envío de método asincrónico (AMD), un método de comunicación de datos utilizado cuando existe la necesidad de que el lado del servidor maneje una gran cantidad de solicitudes de cliente de larga duración. [3] Al utilizar el envío de método sincrónico (SMD), este escenario puede hacer que el servidor pase a un estado de ocupación 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 hilo disponible de un grupo de hilos y el cliente se coloca en un estado de bloqueo. Una vez completada la tarea, se notifica al servidor mediante una devolución de llamada. El servidor desbloquea al cliente y transmite la respuesta de vuelta al cliente. En caso de inanición de hilos , los clientes se bloquean esperando que los hilos estén disponibles.
Véase también
Referencias
- ^ de Davies, Alex (2012). Async en C# 5.0. O'Reilly. págs. 1 y 2. ISBN 9781449337124.
- ^ McCool, Michael; Reinders, James; Robison, Arch (2013). Programación paralela estructurada: patrones para computación eficiente . Elsevier. pág. 30.
- ^ Uso de ICE de AMD.