Tarea de Multihilo
Tarea
Se requiere implementar la lógica para crear 100 hilos, cada uno de los cuales calculará el factorial del índice en un bucle y guardará el resultado en el array results.
También es necesario esperar a que todos los hilos finalicen antes de mostrar los resultados. (método join() )
No modifiques nada excepto el método calculateFactorialsInParallel()
Los métodos factorial(), printMassive(), getResults() ya están implementados y no es necesario modificarlos.
factorial(Integer) - calcula el factorial del número proporcionado;
printMassive(BigInteger[]) - imprime el array de resultados en la consola;
getResults() - devuelve el array de resultados (utilizado para pruebas);
SIZE_MASSIVE - constante para definir el tamaño del array (NO MODIFICAR);
results[] - array para almacenar los resultados.
Una vez que haya completado la tarea, diríjase a src/test/java/TaskThreadTest.java y ejecútela
Solo debe haber una prueba para aprobar la primera vez que la ejecute
Cuando realice la tarea correctamente, todas las pruebas deberían aprobarse; si alguna prueba no se aprueba, entonces ha implementado calculateFactorialsInParallel() de forma incorrecta o ha modificado aquellos campos/métodos que no deben cambiarse
Plan de Implementación
-
Crear un arreglo de hilos: Configurar un arreglo de objetos
Thread, donde cada elemento corresponde a un hilo diferente. El tamaño del arreglo debe coincidir con el arreglo que se está procesando (SIZE_MASSIVE = 100). -
Inicializar cada hilo: En un bucle que recorra cada elemento del arreglo, crear un nuevo hilo. Dentro de este hilo, realizar la tarea requerida (calcular el factorial del índice). Almacenar el resultado en el arreglo de resultados.
-
Iniciar los hilos: Una vez creado cada hilo, iniciarlo llamando al método
start(). -
Esperar a que todos los hilos finalicen: Después de iniciar todos los hilos, utilizar el método
join()en cada hilo para asegurar que el hilo principal del programa espere a que todos los hilos finalicen. Esto garantiza que todos los cálculos estén completos antes de que el hilo principal del programa continúe.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.33
Tarea de Multihilo
Desliza para mostrar el menú
Tarea
Se requiere implementar la lógica para crear 100 hilos, cada uno de los cuales calculará el factorial del índice en un bucle y guardará el resultado en el array results.
También es necesario esperar a que todos los hilos finalicen antes de mostrar los resultados. (método join() )
No modifiques nada excepto el método calculateFactorialsInParallel()
Los métodos factorial(), printMassive(), getResults() ya están implementados y no es necesario modificarlos.
factorial(Integer) - calcula el factorial del número proporcionado;
printMassive(BigInteger[]) - imprime el array de resultados en la consola;
getResults() - devuelve el array de resultados (utilizado para pruebas);
SIZE_MASSIVE - constante para definir el tamaño del array (NO MODIFICAR);
results[] - array para almacenar los resultados.
Una vez que haya completado la tarea, diríjase a src/test/java/TaskThreadTest.java y ejecútela
Solo debe haber una prueba para aprobar la primera vez que la ejecute
Cuando realice la tarea correctamente, todas las pruebas deberían aprobarse; si alguna prueba no se aprueba, entonces ha implementado calculateFactorialsInParallel() de forma incorrecta o ha modificado aquellos campos/métodos que no deben cambiarse
Plan de Implementación
-
Crear un arreglo de hilos: Configurar un arreglo de objetos
Thread, donde cada elemento corresponde a un hilo diferente. El tamaño del arreglo debe coincidir con el arreglo que se está procesando (SIZE_MASSIVE = 100). -
Inicializar cada hilo: En un bucle que recorra cada elemento del arreglo, crear un nuevo hilo. Dentro de este hilo, realizar la tarea requerida (calcular el factorial del índice). Almacenar el resultado en el arreglo de resultados.
-
Iniciar los hilos: Una vez creado cada hilo, iniciarlo llamando al método
start(). -
Esperar a que todos los hilos finalicen: Después de iniciar todos los hilos, utilizar el método
join()en cada hilo para asegurar que el hilo principal del programa espere a que todos los hilos finalicen. Esto garantiza que todos los cálculos estén completos antes de que el hilo principal del programa continúe.
¡Gracias por tus comentarios!