Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Multithreading-Aufgabe | Grundlagen der Multithread-Verarbeitung
Multithreading in Java
course content

Kursinhalt

Multithreading in Java

Multithreading in Java

1. Grundlagen der Multithread-Verarbeitung
2. Synchronisierte Sammlungen
3. Hochrangige Synchronisationsmechanismen
4. Best Practices für Multithreading

book
Multithreading-Aufgabe

Aufgabe

Sie müssen eine Logik schreiben, um 100 Threads zu erstellen, von denen jeder die Fakultät des Indexes in einer Schleife berechnet und das Ergebnis im results-Array speichert. Sie müssen auch warten, bis alle Threads abgeschlossen sind, bevor Sie die Ergebnisse ausgeben. (join() Methode)

Die Methoden factorial(), printMassive(), getResults() sind fertig und Sie müssen sie in keiner Weise ändern

factorial(Integer) - berechnet die Fakultät der übergebenen Zahl;

printMassive(BigInteger[]) - gibt das Ergebnisse-Array auf der Konsole aus;

getResults() - gibt das Ergebnisse-Array zurück (wird für Tests verwendet);

SIZE_MASSIVE - Konstante zur Definition des Array-Werts (NICHT ÄNDERN);

results[] - Array zur Aufzeichnung der Ergebnisse.

Sobald Sie die Aufgabe erledigt haben, gehen Sie zu src/test/java/TaskThreadTest.java und führen Sie sie aus

Sie sollten nur einen Test haben, um ihn beim ersten Mal zu bestehen

Wenn Sie die Aufgabe korrekt ausführen, sollten alle Tests bestehen. Wenn ein Test nicht besteht, haben Sie calculateFactorialsInParallel() falsch implementiert oder jene Felder/Methoden geändert, die nicht geändert werden dürfen.

Implementierungsplan

  1. Erstellen Sie ein Array von Threads: Richten Sie ein Array von Thread-Objekten ein, wobei jedes Element einem anderen Thread entspricht. Die Größe des Arrays sollte mit dem Array übereinstimmen, das Sie verarbeiten (SIZE_MASSIVE = 100).

  2. Initialisieren Sie jeden Thread: In einer Schleife, die durch jedes Element des Arrays iteriert, erstellen Sie einen neuen Thread. Innerhalb dieses Threads führen Sie die erforderliche Aufgabe aus (berechnen Sie die Fakultät des Indexes). Speichern Sie das Ergebnis im Ergebnisarray.

  3. Starten Sie die Threads: Sobald jeder Thread erstellt ist, starten Sie ihn, indem Sie die start()-Methode aufrufen.

  4. Warten Sie, bis alle Threads abgeschlossen sind: Nachdem alle Threads gestartet wurden, verwenden Sie die join()-Methode für jeden Thread, um sicherzustellen, dass der Hauptprogramm-Thread wartet, bis alle Threads beendet sind. Dies garantiert, dass alle Berechnungen abgeschlossen sind, bevor der Hauptprogramm-Thread fortfährt.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 7
We're sorry to hear that something went wrong. What happened?
some-alt