1 Hilos en Java
Debemos implementar en Java
un hilo que lance la impresión de una
palabra 10
veces. En el programa principal crearemos dos hilos de
ese tipo inicializados con dos palabras diferentes y los lanzaremos
para que se ejecuten a la vez.
Los hilos se deben implementar de las dos formas vistas en clase de teoría:
-
Creando una clase que herede de la clase Thread y que ejecute los hilos desde el programa principal. Para crear un hilo el programador define una clase que extiende la clase
Thread
que es parte del paquetejava.lang
. Comenta los resultados obtenidos al utilizar este método. -
Crear el hilo implementando la interfaz
Runnable
. Comenta los resultados obtenidos al ejecutar esta método. -
Compara ambos métodos y determina cual consideras que es más adecuado y cuales son las razones que hacen un método más adecuado que el otro.
-
Modifica el programa realizado en el apartado
2
, para que el primer hilo creado en el main tenga prioridad1
. ¿Qué ocurre con la ejecución de los hilos? ¿Qué puedes decir acerca de la gestión de prioridades por parte de la máquina virtual de tu instalación de Java?
2 Hilos en Python
Implementa en Python un programa que lance 5
hilos que se encarguen
de actualizar una variable global compartida 50,000
veces cada uno.
Si el programa funciona correctamente la variable (inicializada a 0
)
debería acabar valiendo 250,000
. Ejecuta el programa varias veces y
comenta los resultados que observes.
3 Hilos en Rust
Escribe un programa en Rust que haga algo similar al caso anterior (python). Ejecuta el programa varias veces y comenta los resultados que observes.
Recuerda que aquí tienes toda la información sobre el uso de Mutex en Rust.
Puedes instalar Rust desde el sistema de paquetería de tu SO o con la herramienta oficial rustup del lenguaje.
4 Entrega
-
Se realiza en pracdlsi en las fechas allí indicadas. Puedes entregar tantas veces como quieras, solo se corrige la ultima entrega.
-
Crea una carpeta llamada
p2
y dentro de ella en una carpeta por cada lenguaje de programación estarán el código y archivos de texto o PDF donde contestas a las preguntas y/o aclaras dudas sobre tu implementación.Esta carpeta la comprimes en un archivo llamado
p2.tgz
p.e. así usando el terminal:tar cfz p2.tgz p2