Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Multitrådsoppgave | Grunnleggende om Multitråding
Multitråding i Java

bookMultitrå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)

Note
Merk

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

  1. 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).

  2. 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.

  3. Start trådene: Når hver tråd er opprettet, start den ved å kalle start()-metoden.

  4. 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.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 7

Spør AI

expand

Spør AI

ChatGPT

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

bookMultitrå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)

Note
Merk

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

  1. 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).

  2. 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.

  3. Start trådene: Når hver tråd er opprettet, start den ved å kalle start()-metoden.

  4. 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.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 7
some-alt