El hilo es la unidad más pequeña que el sistema operativo puede realizar en la programación de operaciones.
Un hilo es una ruta independiente en la ejecución de un programa. Es la unidad más básica para que un programa utilice la CPU. Es un único flujo de control secuencial en el proceso y una ruta de ejecución. Si un proceso tiene solo una ruta de ejecución, se denomina programa de subproceso único; si un proceso tiene múltiples rutas de ejecución, se denomina programa de subprocesos múltiples.
El hilo es la unidad más pequeña que el sistema operativo puede realizar en la programación de operaciones. Es una ruta de ejecución dentro de un proceso y es un flujo de control secuencial único en el proceso. Básicamente, el subproceso en sí no posee recursos del sistema, solo unos pocos recursos que son esenciales para la ejecución (como un contador de programa, un conjunto de registros y una pila), pero puede compartir lo que tiene el proceso con otros subprocesos que pertenecen al mismo. mismo proceso.
Los subprocesos se pueden dividir en dos categorías: subprocesos a nivel de usuario y subprocesos a nivel de kernel. Los subprocesos a nivel de usuario también se denominan subprocesos ligeros. Están completamente integrados en el espacio del usuario y son administrados por la propia aplicación, mientras que los subprocesos a nivel de kernel se denominan subprocesos pesados y requieren el soporte del sistema operativo.
Los subprocesos tienen principalmente las siguientes características:
Ligero: la entidad del subproceso es muy pequeña, básicamente no ocupa memoria y solo ocupa una pequeña cantidad de espacio de pila y algo necesario. registros de CPU. Concurrencia: varios subprocesos en el mismo proceso pueden ejecutarse simultáneamente. Comparten los recursos del proceso, pero cada subproceso tiene su propio espacio de pila y registros.
Independencia: Cada hilo tiene su propio contador de programa, pila, variables locales, etc. Cada uno ejecuta sus propios programas sin interferir entre sí. Compartir: todos los subprocesos del mismo proceso comparten el espacio de direcciones y los recursos del proceso. Pueden acceder a las mismas variables, direcciones de memoria, etc.