Tâche de Multithreading
Tâche
Vous devez écrire la logique pour créer 100 threads, chacun d'eux devant calculer la factorielle de son indice dans une boucle et enregistrer le résultat dans le tableau results.
Vous devez également attendre que tous les threads soient terminés avant d'afficher les résultats. (méthode join() )
Ne modifiez rien d'autre que la méthode calculateFactorialsInParallel()
Les méthodes factorial(), printMassive(), getResults() sont déjà prêtes et vous n'avez pas besoin de les modifier.
factorial(Integer) - calcule la factorielle du nombre passé en argument ;
printMassive(BigInteger[]) - affiche le tableau de résultats dans la console ;
getResults() - retourne le tableau de résultats (utilisé pour les tests) ;
SIZE_MASSIVE - constante définissant la taille du tableau (NE PAS MODIFIER) ;
results[] - tableau pour enregistrer les résultats.
Une fois la tâche terminée, accéder à src/test/java/TaskThreadTest.java et l’exécuter
Un seul test doit être réussi lors de la première exécution
Lorsque la tâche est correctement réalisée, tous les tests doivent être validés ; si un test échoue, cela signifie que la méthode calculateFactorialsInParallel() a été mal implémentée ou que certains champs/méthodes qui ne doivent pas être modifiés ont été changés
Plan de mise en œuvre
-
Créer un tableau de threads : Définir un tableau d’objets
Thread, où chaque élément correspond à un thread différent. La taille du tableau doit correspondre à celle du tableau à traiter (SIZE_MASSIVE = 100). -
Initialiser chaque thread : Dans une boucle parcourant chaque élément du tableau, créer un nouveau thread. À l’intérieur de ce thread, effectuer la tâche requise (calculer la factorielle de l’indice). Stocker le résultat dans le tableau des résultats.
-
Démarrer les threads : Une fois chaque thread créé, l’initier en appelant la méthode
start(). -
Attendre la fin de tous les threads : Après avoir démarré tous les threads, utiliser la méthode
join()sur chaque thread afin de garantir que le thread principal du programme attende la fin de tous les threads. Cela assure que tous les calculs sont terminés avant que le thread principal du programme ne poursuive.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you show me how to implement the calculateFactorialsInParallel() method?
What should I do if some tests do not pass after running them?
Can you explain how to use the join() method with threads in this context?
Awesome!
Completion rate improved to 3.33
Tâche de Multithreading
Glissez pour afficher le menu
Tâche
Vous devez écrire la logique pour créer 100 threads, chacun d'eux devant calculer la factorielle de son indice dans une boucle et enregistrer le résultat dans le tableau results.
Vous devez également attendre que tous les threads soient terminés avant d'afficher les résultats. (méthode join() )
Ne modifiez rien d'autre que la méthode calculateFactorialsInParallel()
Les méthodes factorial(), printMassive(), getResults() sont déjà prêtes et vous n'avez pas besoin de les modifier.
factorial(Integer) - calcule la factorielle du nombre passé en argument ;
printMassive(BigInteger[]) - affiche le tableau de résultats dans la console ;
getResults() - retourne le tableau de résultats (utilisé pour les tests) ;
SIZE_MASSIVE - constante définissant la taille du tableau (NE PAS MODIFIER) ;
results[] - tableau pour enregistrer les résultats.
Une fois la tâche terminée, accéder à src/test/java/TaskThreadTest.java et l’exécuter
Un seul test doit être réussi lors de la première exécution
Lorsque la tâche est correctement réalisée, tous les tests doivent être validés ; si un test échoue, cela signifie que la méthode calculateFactorialsInParallel() a été mal implémentée ou que certains champs/méthodes qui ne doivent pas être modifiés ont été changés
Plan de mise en œuvre
-
Créer un tableau de threads : Définir un tableau d’objets
Thread, où chaque élément correspond à un thread différent. La taille du tableau doit correspondre à celle du tableau à traiter (SIZE_MASSIVE = 100). -
Initialiser chaque thread : Dans une boucle parcourant chaque élément du tableau, créer un nouveau thread. À l’intérieur de ce thread, effectuer la tâche requise (calculer la factorielle de l’indice). Stocker le résultat dans le tableau des résultats.
-
Démarrer les threads : Une fois chaque thread créé, l’initier en appelant la méthode
start(). -
Attendre la fin de tous les threads : Après avoir démarré tous les threads, utiliser la méthode
join()sur chaque thread afin de garantir que le thread principal du programme attende la fin de tous les threads. Cela assure que tous les calculs sont terminés avant que le thread principal du programme ne poursuive.
Merci pour vos commentaires !