curso-java
TEMA 9
Threads. Programas Multitarea
Considerando el entorno multithread (multihilo), cada thread (hilo, flujo de control
del programa) representa un proceso individualejecutándose en un sistema. A
veces se les llama procesos ligeros o contextos de ejecución.
Típicamente, cada hilo controla un único aspecto dentro de un programa, como
puede ser supervisar la entrada en undeterminado periférico o controlar toda la
entrada/salida del disco. Todos los hilos comparten los mismos recursos, al
contrario que los procesos, en donde cada uno tiene su propia copia de código ydatos (separados unos de otros). Gráficamente, los hilos (threads) se parecen en
su funcionamiento a lo que muestra la figura siguiente:
Aplicación Java
Thread 2:
Control de Entrada
Thread 1:Transferencia de ficheros
Thread 3:
Pintar Gráficos
En primer lugar hay que distinguir entre multihilo (multithread) y multiproceso.
El multiproceso se refiere a dos programas que se ejecutan“aparentemente” a la
vez, bajo el control del S.O. Los programas no necesitan tener relación unos con
otros, simplemente el hecho de que el usuario desee que se ejecuten a la vez.
Jesús CáceresTello
Pág. 1 - 23
Curso de Java
En cambio el multihilo se refiere a que dos o más tareas se ejecutan
“aparentemente” a la vez, dentro de un mismo programa. Digo “aparentemente”
porquenormalmente las plataformas tienen una sola CPU, con lo cual, los procesos
se ejecutan en realidad “concurrentemente” compartiendo la CPU. En plataformas
con varias CPU, sí es posible que los procesosse ejecuten realmente a la vez.
Programas de flujo único
A lo largo de este curso hemos visto muchos ejemplos, un programa de flujo único
o mono-hilvanado (single-thread) utiliza un único flujo decontrol (thread) para
controlar la ejecución. Muchos programas no necesitan la potencia o utilidad de
múltiples flujos de control, la mayoría de los applets y aplicaciones son de flujo
único....
Regístrate para leer el documento completo.