Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Multitrådning Opgave | Grundlæggende om Multithreading
Quizzes & Challenges
Quizzes
Challenges
/
Multitrådning i Java

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

Note
Bemærk

Æ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

  1. Opret et array af tråde: Opret et array af Thread objekter, hvor hvert element svarer til en forskellig tråd. Arrayets størrelse skal matche det array, du behandler (SIZE_MASSIVE = 100).

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

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

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

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 7

Spørg AI

expand

Spørg AI

ChatGPT

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

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

Note
Bemærk

Æ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

  1. Opret et array af tråde: Opret et array af Thread objekter, hvor hvert element svarer til en forskellig tråd. Arrayets størrelse skal matche det array, du behandler (SIZE_MASSIVE = 100).

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

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

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

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 7
some-alt