0% encontró este documento útil (0 votos)
3 vistas3 páginas

Reporte Multihilos GUI

El proyecto analiza e implementa el uso de hilos en una aplicación gráfica de Java Swing para simular una cola de impresión en una oficina moderna. Se utilizan mecanismos de sincronización como synchronized, wait y notify para controlar el acceso a la impresora compartida, garantizando un flujo ordenado de impresión. La interfaz gráfica permite visualizar en tiempo real el comportamiento de los hilos, mejorando la comprensión del desarrollo de aplicaciones concurrentes.
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)
3 vistas3 páginas

Reporte Multihilos GUI

El proyecto analiza e implementa el uso de hilos en una aplicación gráfica de Java Swing para simular una cola de impresión en una oficina moderna. Se utilizan mecanismos de sincronización como synchronized, wait y notify para controlar el acceso a la impresora compartida, garantizando un flujo ordenado de impresión. La interfaz gráfica permite visualizar en tiempo real el comportamiento de los hilos, mejorando la comprensión del desarrollo de aplicaciones concurrentes.
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

INSTITUTO TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE CERRO AZUL

Proyecto: GUIs con Multihilos

Asignatura: Tópicos Avanzados de Programación

Unidad: 3 - Hilos

Carrera: Ingeniería en Sistemas Computacionales

Integrantes:

• Carrillo Pacheco Roberto

• Hernández Zavala Jesús Eduardo

• Méndez Pérez Christian Gabriel

Fecha: Mayo 2026

1. Introducción
El presente proyecto tiene como objetivo analizar e implementar el uso de hilos dentro de una aplicación
gráfica desarrollada en Java Swing. La práctica se enfoca en la simulación de una cola de impresión en una
oficina moderna, donde múltiples usuarios envían documentos a una impresora compartida. Debido a que
la impresora únicamente puede atender un documento a la vez, es necesario utilizar mecanismos de
sincronización que permitan controlar el acceso concurrente al recurso compartido. Además de implementar
los procesos mediante hilos, se desarrolló una interfaz gráfica que permite visualizar el comportamiento de
cada hilo en tiempo real, mostrando la ejecución, espera y finalización de los procesos. Este proyecto
permite comprender la importancia de los hilos sincronizados y no sincronizados en el desarrollo de
aplicaciones concurrentes.

2. Objetivos
Desarrollar una aplicación gráfica utilizando multihilos para simular una cola de
Objetivo General
impr
Objetivo Específico 1 Implementar hilos utilizando la clase Thread.
Aplicar synchronized, wait y notify para controlar procesos
Objetivo Específico 2
concurrentes.
Objetivo Específico 3 Diseñar una GUI en Java Swing que muestre la ejecución de los hilos.
Analizar el comportamiento de los procesos sincronizados y no
Objetivo Específico 4
sincronizados.
3. Marco Teórico
Un hilo es una unidad de ejecución dentro de un programa. Los hilos permiten realizar múltiples tareas de
manera concurrente, mejorando el rendimiento y la eficiencia de las aplicaciones. En Java, los hilos pueden
implementarse mediante la clase Thread o la interfaz Runnable. En aplicaciones concurrentes, varios hilos
pueden acceder a un mismo recurso compartido. Esto puede provocar inconsistencias si no se utilizan
mecanismos de sincronización. Para evitar problemas, Java proporciona herramientas como synchronized,
wait y notify. La programación multihilo es ampliamente utilizada en sistemas operativos, servidores,
videojuegos y aplicaciones gráficas, ya que permite ejecutar procesos en paralelo y mantener interfaces
responsivas.

4. Análisis del Proyecto


El proyecto simula una cola de impresión compartida. Cada documento enviado representa un hilo
independiente que solicita acceso a la impresora. Debido a que la impresora es un recurso único,
únicamente un hilo puede utilizarla a la vez. Procesos identificados: • Generación de documentos. • Envío
de documentos a la cola. • Espera de turnos. • Impresión de documentos. • Liberación del recurso
compartido. Los procesos fueron implementados mediante hilos sincronizados para evitar conflictos de
acceso simultáneo.

5. Uso de Hilos y Sincronización


La aplicación utiliza synchronized para asegurar que solo un hilo pueda imprimir un documento al mismo
tiempo. Cuando un hilo encuentra ocupada la impresora, entra en estado de espera utilizando wait(). Una
vez que la impresora termina de procesar un documento, se utiliza notify() para despertar al siguiente hilo
en espera. Esto garantiza: • Control de concurrencia. • Evitar bloqueos de recursos. • Mantener el orden de
impresión. • Simulación realista de una cola de impresión.

6. Desarrollo de la Interfaz Gráfica


La interfaz gráfica fue desarrollada en Java Swing. La ventana principal permite visualizar el estado de cada
hilo durante la ejecución del sistema. Características de la GUI: • Botón para iniciar la simulación. • Área de
texto donde se muestran los procesos. • Visualización del orden de impresión. • Indicador de documentos
procesados. • Botón de salida del sistema. La interfaz mejora la comprensión del comportamiento
concurrente de los hilos y facilita la interacción del usuario.

7. Resultados Obtenidos
Durante las pruebas realizadas, el sistema logró gestionar correctamente múltiples hilos sin generar
conflictos en la impresión. La sincronización permitió mantener un flujo ordenado de ejecución, mientras
que la interfaz gráfica mostró en tiempo real la actividad de cada proceso. Se observó que: • Los documentos
se imprimen en orden. • No existe acceso simultáneo a la impresora. • Los hilos esperan correctamente su
turno. • La interfaz permanece funcional durante toda la ejecución.

8. Conclusión
El proyecto permitió comprender de manera práctica el funcionamiento de los hilos en aplicaciones
concurrentes. La implementación de synchronized, wait y notify demostró la importancia de controlar el
acceso a recursos compartidos. Además, el uso de interfaces gráficas mediante Java Swing facilitó la
visualización de los procesos ejecutados por cada hilo, mejorando la comprensión del comportamiento
multihilo. En conclusión, el sistema desarrollado cumple satisfactoriamente con los objetivos planteados,
simulando un entorno real de impresión compartida y aplicando correctamente técnicas de programación
concurrente.

También podría gustarte