Multitrådsoppgave
Oppgave
Du skal skrive logikk for å opprette 100 tråder, der hver tråd beregner fakultetet til indeksen i en løkke og lagrer resultatet i results-arrayet.
Du må også vente på at alle trådene er ferdige før du skriver ut resultatene. (join()-metoden)
Ikke endre noe annet enn metoden calculateFactorialsInParallel()
Metodene factorial(), printMassive(), getResults() er ferdiglagde og skal ikke endres
factorial(Integer) – beregner fakultetet til tallet du sender inn;
printMassive(BigInteger[]) – skriver ut resultat-arrayet til konsollen;
getResults() – returnerer resultat-arrayet (brukes til tester);
SIZE_MASSIVE – konstant for å definere arrayets størrelse (SKAL IKKE ENDRES);
results[] – array for lagring av resultater.
Når du har utført oppgaven, gå til src/test/java/TaskThreadTest.java og kjør den
Du skal kun ha én test som skal bestås første gang du kjører den
Når du løser oppgaven riktig, skal alle testene bestås. Hvis noen tester ikke består, har du implementert calculateFactorialsInParallel() feil eller endret felter/metoder som ikke skal endres
Implementeringsplan
-
Opprett et array av tråder: Sett opp et array med
Thread-objekter, der hvert element tilsvarer en forskjellig tråd. Arrayets størrelse skal tilsvare arrayet du behandler (SIZE_MASSIVE = 100). -
Initialiser hver tråd: I en løkke som itererer gjennom hvert element i arrayet, opprett en ny tråd. I denne tråden utføres den nødvendige oppgaven (beregn fakultetet til indeksen). Lagre resultatet i resultat-arrayet.
-
Start trådene: Når hver tråd er opprettet, start den ved å kalle
start()-metoden. -
Vent til alle trådene er ferdige: Etter at alle trådene er startet, bruk
join()-metoden på hver tråd for å sikre at hovedtråden venter til alle trådene er ferdige. Dette garanterer at alle beregninger er fullført før hovedtråden fortsetter.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.33
Multitrådsoppgave
Sveip for å vise menyen
Oppgave
Du skal skrive logikk for å opprette 100 tråder, der hver tråd beregner fakultetet til indeksen i en løkke og lagrer resultatet i results-arrayet.
Du må også vente på at alle trådene er ferdige før du skriver ut resultatene. (join()-metoden)
Ikke endre noe annet enn metoden calculateFactorialsInParallel()
Metodene factorial(), printMassive(), getResults() er ferdiglagde og skal ikke endres
factorial(Integer) – beregner fakultetet til tallet du sender inn;
printMassive(BigInteger[]) – skriver ut resultat-arrayet til konsollen;
getResults() – returnerer resultat-arrayet (brukes til tester);
SIZE_MASSIVE – konstant for å definere arrayets størrelse (SKAL IKKE ENDRES);
results[] – array for lagring av resultater.
Når du har utført oppgaven, gå til src/test/java/TaskThreadTest.java og kjør den
Du skal kun ha én test som skal bestås første gang du kjører den
Når du løser oppgaven riktig, skal alle testene bestås. Hvis noen tester ikke består, har du implementert calculateFactorialsInParallel() feil eller endret felter/metoder som ikke skal endres
Implementeringsplan
-
Opprett et array av tråder: Sett opp et array med
Thread-objekter, der hvert element tilsvarer en forskjellig tråd. Arrayets størrelse skal tilsvare arrayet du behandler (SIZE_MASSIVE = 100). -
Initialiser hver tråd: I en løkke som itererer gjennom hvert element i arrayet, opprett en ny tråd. I denne tråden utføres den nødvendige oppgaven (beregn fakultetet til indeksen). Lagre resultatet i resultat-arrayet.
-
Start trådene: Når hver tråd er opprettet, start den ved å kalle
start()-metoden. -
Vent til alle trådene er ferdige: Etter at alle trådene er startet, bruk
join()-metoden på hver tråd for å sikre at hovedtråden venter til alle trådene er ferdige. Dette garanterer at alle beregninger er fullført før hovedtråden fortsetter.
Takk for tilbakemeldingene dine!