Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORMACIÓN BÁSICA
PRÁCTICA No.: 03
NOMBRE DE LA PRÁCTICA:
PATRONES DE CONCURRENCIA
ASIGNATURA: TALLER DE PROGRAMACION
TEMA DE LA PRÁCTICA:
Patrones de Diseño de Concurrencia – Hilos
MARCO TEORICO.
1
Material del libro disponible en Internet es < http://wiki.c2.com/?DesignPatternsBook >
FORMATO PARA PRACTICAS DE LABORATORIO
de ejecución cuando así se requiere. Por ejemplo: el patrón Abstract Factory (Fabrica
abstracta).
2. Patrones Estructurales: Que definen la estructura del proyecto por ejemplo el
patrón Facade (Fachada) propone que exista una clase que reciba peticiones de
servicio y delegue responsabilidades a las otras clases.
Sin embargo, no es esta la única clasificación disponible existe por ejemplo otra clase llamada
Patrones de Diseño de Concurrencia [ CITATION Mic20 \l 9226 ] estos patrones nos
ayudan a crear y mejorar una interfaz entre objetos, sincronizar la memoria compartida entre
hilos, hacer que los datos sean seguros, monitorear el progreso y administrar hilos y eventos.
Un modelo simplista para crear una aplicación de servidor sería crear un nuevo hilo cada vez
que llega una solicitud y atender la solicitud en el nuevo hilo. Sin embargo, existe el problema de
la sobrecarga de: crear y destruir subprocesos, los subprocesos activos consumen recursos del
FORMATO PARA PRACTICAS DE LABORATORIO
sistema. Crear demasiados subprocesos en una JVM puede hacer que el sistema se quede sin
memoria o se bloquee debido al consumo excesivo de memoria. Para evitar la pérdida de
recursos, las aplicaciones del servidor necesitan algunos medios para limitar cuántas solicitudes
se procesan en un momento dado.
CONSULTA PREVIA.
1. Defina el concepto de patrón de software
Los patrones de software son maneras de resolver problemas que se presentan comúnmente
en el desarrollo de software, estas soluciones son generales y reutilizables a diferentes
problemas, proporcionan soluciones apropiadas a dificultades a las que se han enfrentado
desarrolladores a lo largo del tiempo.
2. Explique con sus propias palabras en qué consiste el principio de alta cohesión y bajo
acoplamiento.
Completamente documentado.
Probado a fondo
Debe ser robusto, comprobando la validez de las entradas.
Debe ser capaz de pasar mensajes de error apropiados.
Diseñado pensando en que será usado de maneras imprevistas.
5. ¿Por qué se puede afirmar que patrón Thread Pool es un patrón de concurrencia?
Este patrón logra la concurrencia en la ejecución de un programa, mantiene varios
subprocesos esperando a que el programa de supervisión asigne tareas para su
ejecución simultánea, de esta manera al mantener un grupo de subprocesos el
rendimiento aumenta debido a la frecuencia creación y destrucción de subprocesos para
tareas de corta duración.
PALABRAS CLAVE *
• PATRONES DE CONCURRENCIA
METODOLOGÍA.
El taller es individual.
Cada estudiante debe ubicarse en un equipo y asegurarse de tener instaladas las
aplicaciones requeridas.
En el laboratorio el estudiante debe proceder a realizar la práctica y posteriormente puede
enviar la solución del taller para ser revisada por el profesor.
El estudiante puede formular inquietudes al profesor durante el desarrollo de la práctica.
PROCEDIMIENTO A UTILIZAR.
Este sirve como su proyecto de semestre para esto debe tener claridad del proyecto
propuesto; elaboré un enunciado similar al siguiente ejemplo. Realizar
1. Cree un nuevo
IBM (Brian Goetz). (7proyecto llamada Videojuego.
de 2002). Thread pools and work queues. Obtenido de
2. Implemente el siguiente diagrama de clases:
https://www.ibm.com/developerworks/java/library/j-jtp0730/index.html
Pressman, R. (2010). Ingeniería de Software, un enfoque práctico. (Séptima. ed.). New York, NY.:
Mc Graw Hill.
FORMATO PARA PRACTICAS DE LABORATORIO
Sznajdleder, Pablo Augusto, (2017) Programación orientada a objetos y estructura de datos a fondo:
implementación de algoritmos en Java, 1er edición. Ed. Alfaomega Cloud. (Colección biblioteca
UMB).
Deitel, Paul J., (2016) Java cómo programar, Décima edición, Ed.Pearson Education. Cáp. 3
(Colección biblioteca UMB).
Joyanes. (2014). Programación en C/C JAVA y UML . (Vol. 2a. ed.). México: McGraw-Hill
Interamericana. Recuperado el 6 de 7 de 2020, de http://ebooks7-24.com.proxy.umb.edu.co/?
il=291&pg=403 (colección base de datos digital ebook - UMB).
D. Yang, S. Zhu, S. Zhou, J. Wang and A. Cai, "The Design and Implement of Web MIS of Students
Based on Servlet+JDBC," 2009 First International Workshop on Education Technology and
Computer Science, Wuhan, Hubei, 2009, pp. 1022-1025, doi: 10.1109/ETCS.2009.233.. (colección
base de datos digital IEEE Explore - UMB)..
INFORME DE LABORATORIO
FORMATO PARA PRACTICAS DE LABORATORIO
NOTA:
CUESTIONARIO.
Estado nuevo: En este estado el hilo ha sido creado, mas no ha sido ejecutado, en esta
instancia el hilo es solo es un objeto Thread vacío, ya que el sistema no ha destinado
ningún recurso para él.
Estado ejecutable: La aplicación del método .start () asignara los recursos para que el hilo
pueda ejecutarse, en este estado toda la lógica dentro del método .run() del hilo se
ejecutara secuencialmente.
Estado bloqueado o parado: El hilo entre en este estado con el método .suspend(), el hilo
espera que otro elimine el bloqueo. Un hilo bloqueado puede estar dormido con el
método .sleep() o esperando con el método .wait()
Estado muerto: El hilo puede terminar de dos maneras, una es cuando ejecuta toda su
lógica dentro del run o bien detenerlo con el método .stop() que envía un objeto
ThreadDeath y muere al recibir este objeto.
Se basa en definir varias tareas que se ejecutan a la vez en una misma aplicación, no
siempre significa que se vaya a tener un mejor rendimiento, pero en algunos casos si es
conveniente ya que permite la ejecución de varios procesos de manera concurrente, en
pocas palabras la programación multihilos se puede ver como la manera de ejecutar una
multitarea en una misma aplicación.
Cuando se tienen varios hilos ejecutándose a la vez, puede que al querer acceder dos o mas
FORMATO PARA PRACTICAS DE LABORATORIO
a una misma variable, arreglo, archivo, se interrumpan entre sí, para evitar este tipo de
problemas se deben sincronizar los hilos, para la sincronización en java se utiliza el concepto de
monitor el cual bloquea un objeto, es decir, cuando un hilo está bloqueado por un hilo, ningún otro
puede ingresar a este objeto. La sincronización en java se da por la palabra reservada
synchronized, entonces cuando se llama a este método, el hilo entra al monitor del objeto y
bloque al objeto, para que otros hilos puedan acceder a el momentáneamente.
BIBLIOGRAFIA UTILIZADA.
¿Cuál es la diferencia entre un proceso y un hilo?, disponible en Internet desde:
https://www.it-swarm.dev/es/multithreading/cual-es-la-diferencia-entre-un-proceso-y-un-
hilo/958476889/ [Consultado: 19 de julio 2020].
CRITERIOS DE EVALUACIÓN
HABILIDAD INDIVIDUAL O GRUPAL
0 – 1,5 1,6 - 2,9 3,0 - 3,9 4,0 - 4,5 4,6 - 5,0 NOTA
competencia
Utiliza
herramientas
(aprende Procedim
r a hacer) ental
solución de para la
problemas solución de
problemas
Desarrolla
habilidades de Participa
Hace parte del Participa en el
trabajo en activamente el
trabajo trabajo
equipo, No hace parte Parcialmente hace trabajo
propuesto por el propuesto por el
priorizando la del trabajo parte del trabajo propuesto por
(aprender a ser)Socio afectiva
equipo de equipo de N3
toma de propuesto por propuesto por el el equipo de
acuerdo a manera
decisiones y la el equipo equipo manera
parámetros responsable y
escucha de responsable y
básicos puntual
diferentes puntual
propuestas
Frecuentemen Muestra una
te reprocha el Muestra una sobresaliente
Cuida, respeta y A veces muestra una Muestra una
trabajo de sus actitud favorable actitud frente
exige respeto actitud favorable buena actitud
pares y frente a la clase e a la clase e
frente a la frente a la clase y se frente a la clase e
interacción con
docente, y
limita a responder
interactúa
interactúa con
interactúa N4
justifica sus ocasionalmente frecuentemen
sus pares y por las condiciones sus pares y
carencias en el con sus pares y te con sus
docentes básicas del trabajo docente
trabajo en docente pares y
grupo docente
icaunmCo
Utiliza lenguaje No hace uso Ocasionalmente Hace uso de un Hace un buen uso Hace un uso N5
técnico para de un lenguaje hace uso de un lenguaje técnico del lenguaje sobresaliente
referirse a los técnico lenguaje técnico apropiado para la técnico apropiado del lenguaje
diferentes apropiado apropiado para la práctica de para la práctica técnico
tiv
a
FORMATO PARA PRACTICAS DE LABORATORIO
para la
relaciona en la práctica de para la
práctica de laboratorio de laboratorio
práctica laboratorio práctica de
laboratorio
experimental laboratorio
Realiza la
búsqueda Las fuentes de
bibliográfica en información Las fuentes de
Las fuentes de
fuentes son pocas o Las fuentes de Las fuentes de información
información son
confiables que ausentes. Si información son información son son variadas y
restringidas o con
permitan dar las usa son relevantes e variadas e pertinentes.
poca diversidad.
Investi
gativa