0% encontró este documento útil (0 votos)
251 vistas2 páginas

Introducción a Hilos en Programación Java

Un hilo es un flujo secuencial de instrucciones dentro de un proceso que permite realizar múltiples tareas de forma simultánea. Los hilos comparten recursos como memoria y archivos con el proceso principal, pero tienen su propia pila y estado. La programación multihilo permite tareas paralelas dentro de un solo programa, mientras que el multiproceso usa programas independientes con sus propios recursos. Las ventajas de los hilos incluyen evitar bloqueos, incrementar la velocidad y estructurar mejor los programas.

Cargado por

Oscar David
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
251 vistas2 páginas

Introducción a Hilos en Programación Java

Un hilo es un flujo secuencial de instrucciones dentro de un proceso que permite realizar múltiples tareas de forma simultánea. Los hilos comparten recursos como memoria y archivos con el proceso principal, pero tienen su propia pila y estado. La programación multihilo permite tareas paralelas dentro de un solo programa, mientras que el multiproceso usa programas independientes con sus propios recursos. Las ventajas de los hilos incluyen evitar bloqueos, incrementar la velocidad y estructurar mejor los programas.

Cargado por

Oscar David
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

¿Qué es un hilo o thread?

Un hilo es un flujo secuencial de instrucciones que está dentro de un proceso.


Un hilo es también conocido como proceso ligero.
Un hilo en Java es una instancia de la clase java.lang.Thread
Los hilos son uno de los recursos más importantes en programación para realizar
varias tareas
de forma simultánea.
Los hilos de un mismo proceso comparten casi todo: ficheros abiertos, espacio de
memoria, información de protección, temporizadores, señales, etc. Pero al mismo
tiempo, cada hilo tiene también su parte privada: su propia pila, su propio contador
de programa y su propio estado.
¿Qué diferencia existe entre multihilo y multiproceso?
En multiproceso:
-2 o más programas independientes se ejecutan en forma paralela.
-cada programa tiene su propio espacio de memoria, su propio conjunto de
variables, sus propios recursos.
-el control lo tiene el sistema operativo, y el programador no tiene ninguna
ingerencia.
En multihilo:
-2 o más tareas se ejecutan en forma paralela pero dentro de un programa
(proceso).
-Todas las tareas comparten los recursos del programa.
-el control lo tiene el programa, y es responsabilidad del programador controlar el
acceso a los recursos.
¿Cuáles son las ventajas que ofrece la programación con hilos?
Puedes dejar ejecutando tareas en el fondo.
Evitas el bloqueo de un programa.
Incrementas la velocidad de ejecución.
Puedes hacer programas mucho más adecuados.
La programación es mucho más estructurada y fácil.

Clase Runnable
En Java no
está permitida la herencia múltiple, al menos de clases, la forma de
solucionar este problema es utilizando una que permita que las clases que
implementa la interface puedan ser utilizada por la clase

Ciclo de vida de un thread


Un hilo tiene un ciclo de vida que va desde su creación hsta su terminación.
Durante su ciclo de vida cada uno de los hilos o tareas de una aplicación puede
estar en diferentes estados

Threads y prioridades
Un hilo se convierte en prioridad si una de estas condiciones se cumple
Un hilo con una prioridad más alta esté en condiciones de ser ejecutado
(runnable), o
• El hilo termina (termina su método run), o
• Se detiene voluntariamente, o
• Alguna condición hace que el hilo no sea ejecutable (runnable), como una
operación
de entrada/salida o, si el sistema operativo tiene planificación por división de
tiempos
(time slicing), cuando expira el tiempo asignado.

Sincronización de threads

Al usar múltiples hilos, a veces es necesario coordinar las actividades de dos o


más.
La razón más común para la sincronización es cuando dos o más hilos necesitan
acceso a un recurso compartido que solo puede ser utilizado por un hilo a la vez.

También podría gustarte