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

PSP Práctica1

Procesos

Cargado por

cico09
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)
69 vistas3 páginas

PSP Práctica1

Procesos

Cargado por

cico09
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

Programación de servicios y procesos

Práctica 1

Crea una clase MiHilo.java que extienda de Thread. El hilo debe contar los números pares que
hay comprendidos entre los dos números que se le manda e imprimirlos por pantalla.

El hilo debe ser capaz de realizar lo mismo si se le manda contar los números impares. Para
mostrar por pantalla los números y llevar la cuenta de cuántos lleva imprimidos, crea un método
que se llame muestraPares y otro muestraImpares. De este modo, en caso de solicitar contar los
números pares se llamará al método muestraPares y en caso contrario a muestraImpares.

Para imprimir por pantalla los números debe haber un retardo de 1000 por cada número.

Para llevar a cabo todo el hilo tendrá informado el número menor, el mayor y si debe leer par o
impar.

Por ejemplo:

Se solicita que el hilo cuente los números pares que hay entre 1 y 5 imprime por pantalla 2 y 4,
indica que ha contado 2 números pares, el nombre del hilo y su id. Otro ejemplo sería que el hilo
cuenta los números impares que hay entre el 10 y el 20, imprime por pantalla 11, 13, 15, 17 y 19,
indica que ha contado 5 números impares, el nombre del hilo y su id.

Crea la clase LanzaHilos.java que reciba por los argumentos del main 4 parámetros:

• Primer parámetro: será el número menor por el que debe empezar a contar el hilo
(inclusive).
• Segundo parámetro: será el número mayor donde terminará de contar el hilo (inclusive).
• Tercer parámetro: indicará si quiere que el hilo haga el trabajo de contar los pares o los
impares.
• Cuarto parámetro: indicará el nombre del hilo.

En esta clase debes validar que se han introducido 4 argumentos, en caso contrario se finalizará
el programa con 1. También debe validar que los dos primeros parámetros sean enteros, en caso
contrario se finalizará el programa con 2. Una vez superadas las validaciones debes crear un hilo
de la clase MiHilo.java creada previamente, asignarle el nombre que se ha pasado en el cuarto
parámetro e indicarle el trabajo que debe realizar con los parámetros pasados como tercer
argumento, es decir, indicar si quieres contar y mostrar los pares o los impares.

Una posible salida de una ejecución de hilo par sería:

Una posible salida de una ejecución de hilo impar sería:

Crea la clase LanzaProcesoLanzaHilos.java la cual realizará las siguientes tareas:

• Crear un proceso que lea de entrada del fichero input.sh cada línea de ese fichero. Lo
que realizará este input.sh será lo siguiente:
o Creará un nuevo directorio llamado MiCarpeta. Después incluirá en un nuevo
fichero llamado Mificherito.txt que estará en el directorio MiCarpeta las
siguientes líneas de texto:

1*5*true*hilo 1

10*20*false*hilo 2

• Cada línea debe ser interpretada y desglosar en 4 parámetros:


o Primer parámetro: será el número menor por el que debe empezar a contar el
hilo (inclusive).
o Segundo parámetro: será el número mayor donde terminará de contar el hilo
(inclusive).
o Tercer parámetro: indicará si quiere que el hilo haga el trabajo de contar los
pares o los impares.
o Cuarto parámetro: indicará el nombre del hilo.

NOTA: puedes utilizar la clase StringTokenizer para hacer el desglose o el método


split de la clase String de java.

• Por cada conjunto de parámetros llama a un método lanzaProcesoLanzaHilos, el cual se


encargará de ejecutar un proceso que llame al proceso anterior creado LanzaHilos.java.
Después de ejecutarlos comprueba la salida del proceso y píntala por pantalla para saber
con qué valor ha finalizado,0,1,etc.
• La salida de la ejecución de cada proceso debe ser capturada en un fichero que se llame
salidaNum.txt donde Num sea el número del fichero que corresponde con la ejecución
del proceso. Es decir, si solicito lanzar el proceso 1, la salida estará en salida1.txt.
• Redirige los errores a un fichero errorNum.txt por cada proceso que se lance donde Num
sea el número del fichero que corresponde con la ejecución del proceso. Debe poder
acumular los distintos errores que sucedan en cada ejecución sin perder los errores
escritos anteriormente.
• Una vez finalizada la ejecución anterior, se debe leer de cada fichero salidaNum.txt el
resultado y contar cuántos números se han leído en cada fichero y después mostrar por
pantalla la suma de cuántos números se han leído. Por ejemplo:
o salida1.txt: tiene 2 números
o salida2.txt: tiene 5 números
o El programa debe indicar que se han leído 7 números.

La salida de la ejecución del ejemplo sería:

Prueba el programa pasando argumentos correctos. Después crea la clase


LanzaProcesoLanzaHilosKo.java pasando argumentos incorrectos y ejecútalo de nuevo.
Normas de entrega:

Debes subir el proyecto de eclipse completo con toda la estructura de ficheros y carpetas
necesarios para dar solución al problema al ser abierto y ejecutado. La práctica debe realizarse
en parejas, pero todos los integrantes del equipo deben subir al aula virtual la práctica que han
llegado a consensuar para su evaluación. Es decir, la misma práctica será subida por cada
integrante del equipo.

Las prácticas con errores de compilación y/o ejecución serán calificadas con 0.

Las prácticas no entregadas en tiempo y forma serán calificadas con 0.

Puntuación del ejercicio:

Parte de hilos: hasta 4 puntos

• Hasta 2 puntos MiHilo.java


• Hasta 2 puntos LanzaHilos.java

Parte de procesos: hasta 6 puntos para lanzaProcesoLanzaHilos.java y


lanzaProcesoLanzaHilosKo.java

• Hasta 2 puntos generar fichero de variables, leerlas y gestionarlas correctamente


• Hasta 2 puntos lanzar y gestión proceso LanzaHilos.
• Hasta 2 puntos leer y gestionar la información resultado de LanzaHilos.

También podría gustarte