Contenu du cours
Multithreading en Java
Multithreading en Java
Tâche de Multithreading
Tâche
Vous devez écrire la logique pour créer 100 threads, chacun d'eux calculera le factoriel de l'indice dans une boucle et enregistrera 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()
)
Les méthodes factorial()
, printMassive()
, getResults()
sont prêtes à l'emploi et vous n'avez pas besoin de les modifier de quelque manière que ce soit
factorial(Integer)
- calcule le factoriel du nombre que vous avez passé en paramètre;
printMassive(BigInteger[])
- imprime le tableau des résultats sur la console;
getResults()
- donne le tableau des résultats (utilisé pour les tests);
SIZE_MASSIVE
- constante pour définir la valeur du tableau (NE PAS CHANGER);
results[]
- tableau pour enregistrer les résultats.
Une fois que vous avez terminé la tâche, allez à src/test/java/TaskThreadTest.java
et exécutez-le
Vous ne devriez avoir qu'un seul test à réussir la première fois que vous l'exécutez
Lorsque vous effectuez correctement la tâche, tous les tests devraient réussir. Si un test ne réussit pas, alors vous avez mal implémenté calculateFactorialsInParallel()
ou modifié ces champs/méthodes qui ne peuvent pas être modifiés.
Plan de mise en œuvre
-
Créer un tableau de threads : Configurez un tableau d'objets
Thread
, où chaque élément correspond à un thread différent. La taille du tableau doit correspondre au tableau que vous traitez (SIZE_MASSIVE = 100
). -
Initialiser chaque thread : Dans une boucle qui parcourt chaque élément du tableau, créez un nouveau thread. Dans ce thread, effectuez la tâche requise (calculer le factoriel de l'index). Stockez le résultat dans le tableau de résultats.
-
Démarrer les threads : Une fois chaque thread créé, initiez-le en appelant la méthode
start()
. -
Attendre que tous les threads soient terminés : Après avoir démarré tous les threads, utilisez la méthode
join()
sur chaque thread pour vous assurer que le thread principal du programme attend que tous les threads soient terminés. Cela garantit que tous les calculs sont terminés avant que le thread principal du programme ne continue.
Merci pour vos commentaires !