Procesos y subprocesos

Una aplicación consta de uno o varios procesos. Un proceso, en los términos más sencillos, es un programa en ejecución. Uno o varios subprocesos se ejecutan en el contexto del proceso. Un subproceso es la unidad básica a la que el sistema operativo asigna tiempo de procesador. Un subproceso puede ejecutar cualquier parte del código de proceso, incluidos los elementos que está ejecutando actualmente otro subproceso.

Un objeto de trabajo permite administrar grupos de procesos como una unidad. Los objetos job son objetos namables, protegibles y compartibles que controlan los atributos de los procesos asociados a ellos. Las operaciones realizadas en el objeto de trabajo afectan a todos los procesos asociados al objeto de trabajo.

Un grupo de subprocesos es una colección de subprocesos de trabajo que ejecutan de forma eficaz devoluciones de llamada asincrónicas en nombre de la aplicación. El grupo de subprocesos se usa principalmente para reducir el número de subprocesos de aplicación y proporcionar administración de los subprocesos de trabajo.

Una fibra es una unidad de ejecución que la aplicación debe programar manualmente. Las fibras se ejecutan en el contexto de los subprocesos que los programan.

La programación en modo de usuario (UMS) es un mecanismo ligero que las aplicaciones pueden usar para programar sus propios subprocesos. Los subprocesos de UMS difieren de las fibras en que cada subproceso de UMS tiene su propio contexto de subproceso en lugar de compartir el contexto de subproceso de un único subproceso.