1.- Introduccion
Concepto de Hilo
Un hilo es un proceso que se está ejecutando en un momento determinado en nuestro sistema operativo, como cualquier otra tarea, esto se realiza directamente en el procesador.
Existen los llamados “demonios” que son los procesos que define el sistema en sí para poder funcionar y otros que llamaremos los hilos definidos por el usuario o por el programador, estos últimos son procesos a los que el programador define un comportamiento e inicia en un momento específico.
Programación multihilo
La programación multihilo es una forma especializada de multitarea, existe multitarea basada en procesos y basada en hilos:
- Basada en procesos.
Permite que se puedan ejecutar dos o más programas a la vez de manera concurrente.
- Multitarea basada en hilos.
Es la unidad mas pequeña de código que se puede seleccionar, de tal forma que un mismo programa puede realizar dos o mas tareas de forma simultanea. (Por ejemplo un editor puede dar formato y estar imprimiendo al mismo tiempo).
Programa multihilo
- Un programa multihilo contiene dos o mas partes que se pueden ejecutar de manera concurrente o simultanea.
- A cada parte del programa se le denomina como hilo (thread).
- La programación multihilo es una forma especializada de multitarea.
- Existe multitarea basada en procesos y basada en hilos.
- Basada en procesos, permite que se puedan ejecutar dos o más programas a la vez de manera concurrente.
- Multitarea basada en hilos es la unidad mas pequeña de código que se puede seleccionar, de tal forma que un mismo programa puede realizar dos o mas tareas de forma simultanea.(Por ejemplo un editor puede dar formato y estar imprimiendo al mismo tiempo).
El hilo principal.
Cuando un programa java comienza su ejecución, ya hay un hilo ejecutándose, a este hilo se le denomina normalmente hilo principal del programa, por que es el único que se ejecuta al comenzar el programa. El hilo principal es importante por dos razones:
•Es el hilo a partir del cual se crean el resto de los hilos del programa.
•Normalmente, debe ser el último que finaliza su ejecución, ya que cuando el hilo principal finaliza, el programa termina.
Comparación de un programa sin hilos y uno utilizando con hilos
En un programa de flujo unico(sin hilos) observamos una ejecución secuencial en la que para ejecutar la tarea siguiente debió haberse terminado ya la actual.
Por otra parte en un programa multihilos o de programacion concurrente existen diferentes flujos de ejecución, que pueden iniciarse en cualquier momento.
Aquí presentamos una figura en la que se puede comparar ambos flujos.
0 Comments