La llamada a procedimiento asincrónica es una unidad de trabajo en una computadora. Por lo general, un programa funciona ejecutando una serie de llamadas a procedimientos síncronos en algún hilo. Pero si algunos datos no están listos (por ejemplo, un programa espera que el usuario responda), entonces mantener el hilo en estado de espera no es práctico, ya que un hilo asigna una cantidad considerable de memoria para la pila de procedimientos y esta memoria no se usa. Por lo tanto, dicha llamada a procedimiento se forma como un objeto con una pequeña cantidad de memoria para los datos de entrada, y este objeto se pasa al servicio que recibe las entradas del usuario. Cuando se recibe la respuesta del usuario, el servicio la coloca en el objeto y pasa ese objeto a un servicio de ejecución.. El servicio de ejecución consta de uno o más subprocesos de trabajo dedicados y una cola para tareas. Cada subproceso de trabajo se lee en una cola de tareas de bucle y, cuando se recupera una tarea, la ejecuta. Cuando no hay tareas, los subprocesos de trabajo están esperando y, por lo tanto, su memoria no se usa, pero el número de subprocesos de trabajo es lo suficientemente pequeño (no tiene sentido tener más subprocesos que procesadores en la máquina).
Por lo tanto, el ciclo de vida de una llamada a procedimiento asíncrono consta de 2 etapas: etapa pasiva, cuando espera pasivamente los datos de entrada, y estado activo, cuando esos datos se calculan de la misma manera que en la llamada de procedimiento habitual.
El objeto de la llamada a procedimiento asincrónico se puede reutilizar para llamadas de procedimiento posteriores con nuevos datos, recibidos más tarde. Esto permite acumular datos de salida computados en ese objeto, como se suele hacer en los objetos, programados con el paradigma de programación orientada a objetos . Se debe tener especial cuidado para evitar la ejecución simultánea de la misma llamada de procedimiento para mantener los datos calculados en un estado consistente. Dicho procedimiento asincrónico reutilizable se denomina Actor . La programación con actores se describe en Modelo de actor y programación de flujo de datos . La diferencia es que Actor en el modelo Actor tiene exactamente dos puertos: un puerto para recibir datos de entrada y otro puerto (oculto) para proporcionar manejo en serie de mensajes de entrada, mientras que Actor en la programación de Dataflow puede tener muchos y va al servicio de ejecución cuando todas las entradas contienen datos o permisos.
Algunas implementaciones específicas
En Windows , una llamada a procedimiento asincrónico (abreviado APC ) es una función que se ejecuta de forma asincrónica en el contexto de un hilo específico. [1] Las APC pueden ser generadas por el sistema (APC en modo kernel) o por una aplicación (APC en modo usuario). [1]
Referencias
- ^ a b "Llamadas a procedimientos asincrónicos (Windows)" . Consultado el 1 de marzo de 2017 .