Curso de C++ Builder


Programación con Hebras

Introducción



Una aplicación multihebra es una aplicación que contiene varías vías simultáneas de ejecución.

Consideraciones:

¿Por qué usar Hebras?

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.

Aprovechamiento de los recursos 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).

Establecimiento de prioridades

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).

Multiprocesamiento real

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.

Estructuración: Paralelismo implícito

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.


Índice de la sección