Multitrådning Opgave
Opgave
Du skal skrive logik til at oprette 100 tråde, hvor hver tråd beregner fakultetet af indekset i en løkke og gemmer resultatet i results-arrayet.
Du skal også vente på, at alle tråde er færdige, før du udskriver resultaterne. (join()-metoden)
Ændr ikke andet end metoden calculateFactorialsInParallel()
Metoderne factorial(), printMassive(), getResults() er færdiglavede og skal ikke ændres
factorial(Integer) - beregner fakultetet af det tal, du sender ind;
printMassive(BigInteger[]) - udskriver resultat-arrayet til konsollen;
getResults() - returnerer resultat-arrayet (bruges til tests);
SIZE_MASSIVE - konstant til at definere arrayets størrelse (MÅ IKKE ÆNDRES);
results[] - array til at gemme resultater.
Når du har udført opgaven, skal du gå til src/test/java/TaskThreadTest.java og køre den
Du bør kun have én test, der skal bestås første gang du kører den
Når du udfører opgaven korrekt, skal alle tests bestås. Hvis en test ikke består, har du implementeret calculateFactorialsInParallel() forkert eller ændret de felter/metoder, der ikke må ændres
Implementeringsplan
-
Opret et array af tråde: Opret et array af
Threadobjekter, hvor hvert element svarer til en forskellig tråd. Arrayets størrelse skal matche det array, du behandler (SIZE_MASSIVE = 100). -
Initialiser hver tråd: I en løkke, der itererer gennem hvert element i arrayet, opret en ny tråd. Inden for denne tråd udføres den nødvendige opgave (beregn fakultetet af indekset). Gem resultatet i resultat-arrayet.
-
Start trådene: Når hver tråd er oprettet, start den ved at kalde
start()-metoden. -
Vent på, at alle tråde er færdige: Efter at have startet alle tråde, brug
join()-metoden på hver tråd for at sikre, at hovedprogramtråden venter på, at alle tråde er færdige. Dette garanterer, at alle beregninger er afsluttet, før hovedprogramtråden fortsætter.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.33
Multitrådning Opgave
Stryg for at vise menuen
Opgave
Du skal skrive logik til at oprette 100 tråde, hvor hver tråd beregner fakultetet af indekset i en løkke og gemmer resultatet i results-arrayet.
Du skal også vente på, at alle tråde er færdige, før du udskriver resultaterne. (join()-metoden)
Ændr ikke andet end metoden calculateFactorialsInParallel()
Metoderne factorial(), printMassive(), getResults() er færdiglavede og skal ikke ændres
factorial(Integer) - beregner fakultetet af det tal, du sender ind;
printMassive(BigInteger[]) - udskriver resultat-arrayet til konsollen;
getResults() - returnerer resultat-arrayet (bruges til tests);
SIZE_MASSIVE - konstant til at definere arrayets størrelse (MÅ IKKE ÆNDRES);
results[] - array til at gemme resultater.
Når du har udført opgaven, skal du gå til src/test/java/TaskThreadTest.java og køre den
Du bør kun have én test, der skal bestås første gang du kører den
Når du udfører opgaven korrekt, skal alle tests bestås. Hvis en test ikke består, har du implementeret calculateFactorialsInParallel() forkert eller ændret de felter/metoder, der ikke må ændres
Implementeringsplan
-
Opret et array af tråde: Opret et array af
Threadobjekter, hvor hvert element svarer til en forskellig tråd. Arrayets størrelse skal matche det array, du behandler (SIZE_MASSIVE = 100). -
Initialiser hver tråd: I en løkke, der itererer gennem hvert element i arrayet, opret en ny tråd. Inden for denne tråd udføres den nødvendige opgave (beregn fakultetet af indekset). Gem resultatet i resultat-arrayet.
-
Start trådene: Når hver tråd er oprettet, start den ved at kalde
start()-metoden. -
Vent på, at alle tråde er færdige: Efter at have startet alle tråde, brug
join()-metoden på hver tråd for at sikre, at hovedprogramtråden venter på, at alle tråde er færdige. Dette garanterer, at alle beregninger er afsluttet, før hovedprogramtråden fortsætter.
Tak for dine kommentarer!