• Opción 1
Editor en línea [Link] aquí se trabajará con C y Java. Para su
habilitación desde internet, consulta el documento Guía_OnlineGDB.pdf que se
proporciona en los materiales de consulta de la unidad.
• Opción 2
Entorno de desarrollo integrado (IDE), se recomienda instalar y explorar Visual Studio.
Disponible en [Link] aquí podrás elegir
trabajar con C.
• Opción 3
IDE de desarrollo para java (NetBeans) y utiliza un compilador de lenguaje C, aquí te
presentamos algunas opciones:
gcc
DEv-C++
Visual Studio Code
Descripción de ejemplo.
Para esta actividad tomamos el ejemplo del productor consumidor el cual consiste en lo siguiente;
tenemos un productor que va produciendo números de uno en uno y un conjunto de consumidores
que estarán consumiendo dichos números producidos. El productor no puede producir más de
un número y los consumidores no pueden consumir nada antes de que se hubiera producido.
Para esto requerimos las siguientes clases; Contenedor, productor y consumidor.
En este caso utilizaremos los monitores en java, se anexa el código fuente utilizado con los
comentarios para entender cada parte del código.
Página 2 de 7
Página 3 de 7
Página 4 de 7
Resultados Obtenidos
Explicación general de la implementación
Lo que se hace en la implementación, es una producción de números concurrentes, para que los
consumidores puedan ir consumiendo dichos números, esto es casi de forma instantánea, ya que
el productor genera 2 números, y los consumidores ya tendrán su número asignado, puede darse
el caso que el productor solo genere 1 numero, y ya este número esta asignado al primer
consumidor, ya que estos números al tener un identificador único que agarran los consumidores,
no se da un cuello de botella.
Página 5 de 7
2. Redacta una conclusión sobre la utilidad de los diversos lenguajes de
programación y su relación con la concurrencia.
1
A través de esta actividad seguimos reforzando los conocimientos adquiridos y lo importante que
es entender el cuando utilizarlos, el como adaptar los programas a ciertas situaciones que nos
benefician y el como evitar un mal uso de estos, el tema de la concurrencia es algo que me parece
fascinante ya que lo utilizo de cierta forma en mi trabajo al realizar pruebas concurrentes a
sistemas con los que me familiarizo.
2
Como hemos visto durante el curso, es muy importante conocer todos estos conceptos y saber
en que momento los podemos aplicar, esta actividad me ayuda a entender la importancia a la
hora de implementarlos, pude observar que en diferentes lenguajes se utiliza de manera similar,
también pude ver la documentación existente en diferentes lenguajes lo cual es de gran ayuda
para cualquier programador. Tenemos que aprovechar las ventajas de usar todas estas
herramientas que ya están disponibles ya que nos agilizaran la generación de código y evitaremos
errores.
3
Durante esta actividad, nos hemos enfocad a reforzar los conocimientos de la concurrencia. El
uso de este es parte fundamental en los diversos tipos de programación que existen hoy en día.
Esto debido a que cuando realizamos distintas acciones de forma simultanea, podemos realizar
estas tareas de una manera más eficiente y efectiva.
La realización de estos ejercicios nos ayudó a comprender más a fondo este tema.
Página 6 de 7
3. Agrega las fuentes consultadas (mínimo 2) referenciadas en estilo APA.
Referencias
[Java] Monitores, ejemplo Productor Consumidor. (2014, 25 noviembre). Programar es sencillo.
Recuperado 8 de octubre de 2022, de
[Link]
consumidor/
DuarteCorporation Tutoriales (Productor). (05 de Julio de 2015). Tutorial de Thread en Lenguaje
C (Hilos en Lenguaje C) [Archivo de video]. Recuperado de
[Link]
Santamaría, R. (2018). Java Threads, Sistemas Distribuidos [Arhivo PDF]. Recuperado de
[Link]
4. Al finalizar, vuelve a la plataforma y sigue los pasos que se indican para enviar tu
actividad.
* * *
Página 7 de 7