0% encontró este documento útil (0 votos)
73 vistas4 páginas

Hilos y Programación Concurrente en Java

Un hilo es una secuencia de código en ejecución dentro del contexto de un proceso. La programación concurrente trata de expresar el paralelismo entre tareas y resolver problemas de comunicación y sincronización entre procesos. Java proporciona soporte para hilos a través de interfaces y clases como Thread y Runnable. Los hilos en Java pueden estar en ejecución, listos para ejecutarse, suspendidos o bloqueados.

Cargado por

Jhon Gutierrez
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)
73 vistas4 páginas

Hilos y Programación Concurrente en Java

Un hilo es una secuencia de código en ejecución dentro del contexto de un proceso. La programación concurrente trata de expresar el paralelismo entre tareas y resolver problemas de comunicación y sincronización entre procesos. Java proporciona soporte para hilos a través de interfaces y clases como Thread y Runnable. Los hilos en Java pueden estar en ejecución, listos para ejecutarse, suspendidos o bloqueados.

Cargado por

Jhon Gutierrez
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

Martes, 03 de Mayo de 2021

INFORME HILOS Nº 1-2021/ UPSJB

A : Mg. CORDOVA FORERO, Julio Alfredo Martin

DE : CCAICO HUAMANI, Jhensson

ESPINO GARCIA, Jean

GUTIERREZ CUSIATADO, Jhon

RONDON AMANQUI, Cristhian

ASUNTO : INFORME SOBRE HILOS Y PROGRAMACIÓN CONCURRENTE

DEFINICIÓN DE HILOS

Un hilo es el único flujo de ejecución dentro de un proceso. Un proceso es un programa


en ejecución dentro de su propio espacio de direcciones.
Por lo tanto, un hilo es una secuencia de código en ejecución dentro del contexto de un
proceso, esto debido a que los hilos no pueden ejecutarse solos, requieren la supervisión
de un proceso.
THREAD

Thread o Light Process (LWP) es otro posible modelo de ejecución para múltiples programas
generalmente proporcionado por el sistema operativo (especialmente NIX), y brinda otra
posibilidad para múltiples programas. Existe una segunda opción para que el programador
pueda hacer un compromiso entre dos protección de calidad ideal y eficiencia. Por lo general,
estos subprocesos tienen vida dentro del proceso, y podemos pensar que el proceso simple
utilizado en Lab2 contiene sólo un subproceso de ejecución interno.

HILOS EN JAVA

La Máquina Virtual Java (JVM) es capaz de manejar multihilos, es decir, puede crear
varios flujos de ejecución de manera simultánea, administrando los detalles como
asignación de tiempos de ejecución o prioridades de los hilos, de forma similar a como lo
administra un Sistema Operativo múltiples procesos.
Java proporciona soporte para hilos a través de una interfaz y un conjunto de clases. La
interfaz de Java y las clases que proporcionan algunas funcionalidades sobre hilos son:
• Thread
• Runnable (interfaz)
• ThreadDeath
• ThreadGroup
• Object

ESTADOS DE LOS HILOS EN JAVA


Un hilo puede tener los siguientes estados:

● Ejecución: El hilo está siendo ejecutado.


● Listo para ejecución: El hilo está en la lista de hilos listos para ser ejecutados, tan
pronto disponga cada uno de tiempo de la CPU.
● Suspensión: La ejecución del hilo es suspendida temporalmente.
● Reanudación: Un hilo suspendido vuelve a ejecutarse continuando su tarea en el
punto donde la dejó.
● Bloqueado: Un hilo está en espera de un determinado recurso.
PROGRAMACION CONCURRENTE

Se conoce por programación concurrente a la rama de la informática que trata de las técnicas
de programación que se usan para expresar el paralelismo entre tareas y para resolver los
problemas de comunicación y sincronización entre procesos. El principal problema de la
programación concurrente corresponde a no saber en qué orden se ejecutan los programas (en
especial los programas que se comunican). Se debe tener especial cuidado en que este orden
no afecte el resultado de los programas.

Para evitar este tipo de errores se pueden identificar aquellas regiones de los procesos que
acceden a variables compartidas y dotarlas de la posibilidad de ejecución como si fueran una
única instrucción. Se denomina Sección Crítica a aquellas partes de los procesos concurrentes
que no pueden ejecutarse de forma concurrente o, también, que desde otro proceso se ven
como si fueran una única instrucción. Esto quiere decir que si un proceso entra a ejecutar una
sección crítica en la que se accede a unas variables compartidas, entonces otro proceso no
puede entrar a ejecutar una región crítica en la que acceda a variables compartidas con el
anterior.
Una aplicación inmediata de la programación concurrente es la multiplicación de la
capacidad de computación. Sin embargo, incluso cuando esta capacidad de computación no
es un cuello de botella, existen numerosos problemas que por naturaleza son concurrentes y
resulta más sencillo resolverlos con un modelo de programación que lo refleje.

También podría gustarte