Instrucciones Actividad 4

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Instrucciones actividad 4.

docx

1. Ejecutar netbeans
2. File – new Project – Java – Javaapplication – Actividad2(Ejercicio2)
3. Clic derecho en el programa – new – java package – actividad
4. Clic derecho en el paquete – new – Java Class– Ejercicio2
5. Agregaremos el siguiente código:

Explicación:
1. Los atributos estáticos comparten valores en toda la clase
2. La variable al finalizar los hilos debería ser 100 * 100 = 10000
3. El valor de cont se acercará a 10000 pero nunca será ese valor debido a que existe
indeterminismo
4. El indeterminismo consiste en que cuando dos o más hilos escriben a la vez en una
variable compartida, el valor de esta variable es indeterminado, esto ocurre porque los
hilos no se ejecutan de inmediato
5. Se recomienda cambiar los valores de 100 a 1000 o 10000 para identificar con mayor
facilidad el indeterminismo
6. Ejecutaremos el hilo principal al final, estor se realiza agregando el siguiente código en el
método main:

Explicación:
1. Con el método join() hemos hecho que todos los hilos se ejecuten uno tras otro y el hilo
principal sea el último en ejecutarse
2. Sin embargo, sigue existiendo indeterminismo, en donde nosotros identificamos que
existe indeterminismo (en nuestro caso en la variable cont) se le conoce como sección
critica, esta sección se puede resolver mediante la exclusión mutua

7. Realizaremos una nueva clase donde procederemos a resolver el indeterminismo, para


ello presionaremos clic derecho en el paquete – new – java class – Multiplica
8. Agregaremos el siguiente código:
Explicación:
1. Siempre una matriz estática debe recibir un tamaño de una variable estática
2. Mediante la variable aleatorio estamos realizando un llenado de los datos, esto se
puede reemplazar por la clase Scanner para agregar los datos manualmente

9. Multiplicaremos la matriz por 10 utilizando 2 hilos, agregaremos el siguiente codigo:


Explicación:
1. Creamos los hilos y los lanzamos uno tras otro mediante el método join()
2. En el meto run multiplicamos por 10 el vector, sin embargo; el resultado será como si lo
hubiésemos multiplicado por 100, esto corre por que los 2 hilos han multiplicado al
vector debido a que acceden al mismo elemento por lo tanto estamos teniendo una
región critica

10. El problema anterior se resuelve dividiendo el vector en 2 secciones y multiplicando cada


sección por un hilo en particular

i= 0 1 2 3 4 5 6 7 8

Vector= 1 2 3 4 5 6 7 8
Hilo 1 Hilo 1 y 2 Hilo 2
11. Para ello realizaremos la siguiente modificacion a uestro codigo:
Explicación:
1. Creamos dos variables que controlen el inicio y fin de cada hilo (como lo indica la tabla
anterior), además del contructor para poder inicializar las variables
2. El ciclo for de método run() lo modificamos con inicio y fin
3. Inicializamos los constructores en 0 y 4 para el primer hilo y 4 y 8 para el segundo hilo

12. Utilizando la clase Multiplica, crea un formulario como el que se muestra:


13. El boton Lanzar 2 hilos ejecutara un arreglo de 12 elementos y los multiplicara por 100
mediante el uso de 2 hilos
14. El boton Lanzar 3 hilos ejecutara un arreglo de 12 elementos y los multiplicara por 100
mediante el uso de 3 hilos
16. Los resultados deberan ser mostrados en una area de texto
17. Es importante destacar que Java no permite la herencia múltiple, por tal motivo para el
uso de hilos deberás implementar de la clase Runnable, apóyate en el siguiente link para
su documentación: https://javadesdecero.es/avanzado/hilos-multihilos-ejemplos/
18. Configura el botón de limpiar mismo que permita limpiar el área texto
19. Posible resultado al Lanzar 2 hilos es:

20. Concluye con el paso 4 al 6 de la actividad correspondiente

También podría gustarte