0% encontró este documento útil (0 votos)
75 vistas10 páginas

Threads Java

Este documento proporciona una introducción a los hilos (threads) en programación concurrente. Explica que un hilo es un proceso de ejecución dentro de un programa y que Java usa hilos en lugar de procesos. Detalla algunas características clave de los hilos como prioridades, estados, y métodos como start(), sleep(), yield() para controlar la ejecución concurrente.

Cargado por

Julio Madrid
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
75 vistas10 páginas

Threads Java

Este documento proporciona una introducción a los hilos (threads) en programación concurrente. Explica que un hilo es un proceso de ejecución dentro de un programa y que Java usa hilos en lugar de procesos. Detalla algunas características clave de los hilos como prioridades, estados, y métodos como start(), sleep(), yield() para controlar la ejecución concurrente.

Cargado por

Julio Madrid
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

HILOS (THREADS)

Docente: Ing. Luis Javier Benítez Cruz


Materia: Tópicos Avanzados de Programación
¿QUÉ ES EL CÓMPUTO PARALELO (CP)?

 Ejecución de más de un cómputo (cálculo) al mismo tiempo o “en paralelo”,


utilizando más de un procesador.
 • Arquitecturas que hay en la actualidad para el cómputo paralelo:
¿QUÉ ES EL CÓMPUTO PARALELO (CP)?

La ejecución de tareas en paralelo optimiza la utilización de los recursos del


sistema
• Ejemplo:
cuando un proceso está esperando la finalización de una operación de E/S,
otros procesos pueden aprovechar el procesador del sistema que en ese
momento no se usa
Las máquinas actuales pueden ejecutar varios programas simultáneamente
• En teoría: sólo tantos como procesadores (núcleos) tengan
• En la práctica: intercalando la ejecución de varios procesos, cambiando muy
rápido entre ellos, “parece” como si se ejecutaran simultáneamente
(programación concurrente)
La programación paralela/concurrente es mucho más compleja que la
convencional
HILOS (THREADS)
Un hilo (Thread) es un proceso en ejecución
dentro de un programa, la finalización depende
del hilo (Thread.suspend, stop están
depreciados).

● Los hilos implementan prioridad y


mecanismos de sincronización
● Cualquier clase se puede hacer hilo
●implements Runnable
HILOS (THREADS)
Son las unidades básicas de ejecución de la programación concurrente
Hilos (threads, también llamados hebras)
• Ejecuciones simultáneas dentro de un mismo proceso (podemos considerarlos
como “procesos ligeros”)
• Su espacio de memoria es, por tanto, compartido Java pone más énfasis en los
hilos que en los procesos
• La propia máquina virtual de Java es un único proceso con múltiples hilos
HILOS (THREADS)
Cuando se inicia un programa en Java, la máquina virtual crea un hilo principal
• El hilo se encargará de invocar al método main de la clase que se comienza a
ejecutar
• El hilo termina cuando se acaba de ejecutar el método main
• Si el hilo principal crea otros hilos, éstos comenzarán su ejecución de forma
concurrente
• Sólo cuando no queda ningún hilo activo, es cuando se termina el programa
HILOS (THREADS)
La clase principal para conseguir concurrencia en Java es la clase Thread

• Dispone de un método start() que ocasiona la ejecución del código que tenga
dentro de su método run() en un nuevo hilo, todos los hilos se ejecutan en la misma
máquina virtual (mismo proceso)
• Por tanto comparten recursos, como la memoria
• En realidad sólo puede haber un hilo ejecutándose a la vez (se alternan, gracias a
la concurrencia).
HILOS (THREADS)
La clase Thread tiene dos métodos para trabajar con las prioridades
• setPriority(int) establece la prioridad del hilo. Puede generar una excepción si:
el parámetro es inválido, o el hilo que invoca al método no tiene los permisos
necesarios para cambiarla
• getPriority() devuelve la prioridad del hilo Para los valores de las prioridades,
existen tres constantes estáticas en la clase Thread
• MAX_PRIORITY (=10): prioridad máxima
• MIN_PRIORITY (=1): prioridad mínima
• NORM_PRIORITY (=5): prioridad por defecto.
PARADAS VOLUNTARIAS
void sleep(long t) duerme el hilo durante al menos t milisegundos
• Cuando transcurran, el hilo estará preparado para ejecutarse
• El planificador lo lanzará cuando considere oportuno
void sleep(long milis, int nanos) versión con más precisión (a nivel de
nanosegundos)
• En la práctica, las implementaciones no tienen tanta precisión…
Las dos versiones del método sleep pueden generar la excepción
InterruptedException que hay que capturar
void yield() pausa temporalmente el hilo
• No queda suspendido, sino que sigue estando preparado para la ejecución
• El planificador se activa y carga otro hilo para ejecutar, que podría ser el mismo
ACTIVIDADES
 Realizar un resumen de la información de esta presentación electrónica
 Investigar cuales son los estados d un hilo (agregar fuente bibliográfica de
libros)
 Generar un mapa mental de los estados de un hilo
 Crear la practica del splash utilizando hilos

También podría gustarte