Una aplicación multihebra es una aplicación que contiene varías vías simultáneas de ejecución.
Consideraciones:
El uso de hebras (de paralelismo, en general) proporciona una serie de ventajas frente a las limitaciones de los sistemas monotarea.
Ejemplo:
Supongamos que nuestra aplicación tiene que ocuparse de la realización de copias de seguridad de los datos con los que trabaja. Con una única hebra tendríamos que programar las copias de seguridad fuera del horario habitual de trabajo (¿y si tiene que funcionar las 24 horas del día?). Con varias hebras, podemos aprovechar los períodos de inactividad del sistema. |
Cuando se utiliza una sola hebra, el programa debe detener completamente la ejecución mientras espera a que se realice cada tarea. La CPU permanece ocupada completamente (o inactiva) hasta que el proceso actual termine. Si se utilizan varias hebras, el sistema puede usarse para realizar varias tareas simultáneamente (vg: reproducción de MP3s en background).
Como es lógico, se le asigna mayor prioridad a las tareas más importantes (vg: las que requieran una respuesta más rápida).
En un sistema multiprocesador, si la aplicación se descompone en varias hebras, el sistema operativo podrá asignar cada una a una de las CPUs del sistema.
En muchas ocasiones, un programa puede diseñarse como varios procesos paralelos que funcionen de forma independiente. La descomposición de una aplicación en varias hebras puede resultar muy beneficiosa en términos de desacoplamiento de código (tareas independientes se implementan por separado) y de calidad del diseño (frente a futuras ampliaciones, por ejemplo).
IMPORTANTE: El objetivo principal del uso de hebras es mejorar el rendimiento del sistema. El diseñador/programador deberá decidir hasta qué punto deben utilizarse. |