Praktikum Threads
Ziel
In diesem Praktikum erzeugen Sie mehrere Threads, warten auf das Ende der Threads und sammeln die Ergebnisse ein. Sie können entscheiden, ob Synchronisationsmethoden zwischen den Threads bei dieser Aufgabe notwendig sind.
Aufgabe
- In einem Feld mit 50 Mill Einträgen vom Typ boolean soll die Anzahl der true-Werte ermittelt werden! (Passen Sie die Anzahl der Einträge ggf. an die Leistung Ihres Rechners an)
- Nutzen Sie Multithreading mit der Schnittstelle Runnable!
- Nutzen Sie zur Ermittlung des Threadendes die Methode join!
- Ermitteln Sie, ob Sperrungen von Thread-Methoden notwendig sind!
- Ermitteln Sie die Anzahl der auf dem System zur Verfügung stehenden Prozessoren/Kerne!
- Hinweis: Runtime.getRuntime().availableProcessors();
- Ermitteln Sie die Ausführungszeit bei 1…100 Threads!
- Stellen Sie die Ergebnisse mittels Gnuplot dar!
- Simulieren Sie eine Wartezeit in den Threads durch das Einfügen des Befehls: Thread.sleep(2) in die Threadabarbeitung und stellen Sie die Ergebnisse analog zum ersten Teil grafisch dar
- Startscript zum Aufruf der Java-Klasse und zur Erzeugung der Ergebnisdatei: Startscript
GNUPlot
- Kommandozeilen-/skriptgesteuerter Funktionsplotter
- Paket gnuplot-x11, Konsolenbetrieb mittels gnuplot
- anzuzeigende Daten als Textdatei mit zeilenweisen Datensätzen
- Anzeige in Gnuplot-Konsole mittels:
plot "result.txt"
- Spaltenwahl:
plot "result.txt" using 1:2
- weiterer Plot:
replot "result.txt" using 1:3
- Formatierungen:
plot "result.txt" w lp lw 2
(Linien, Linienstärke) - Stapelbetrieb möglich -> plt-Skripte (gnuplot pltfile -)
- Parameterübergabe (z.B. Datendatei) an Skripte möglich:
gnuplot -c script.gp result.txt
- Parameter im Skript: ARG1
- Minimalskript:
plot ARG1 pause -1
- Parameterübergabe (z.B. Datendatei) an Skripte möglich:
- Beispiel für result.txt:
1 12.6
2 6.3
3 ...
Fakultativ
Letzte Änderung: 26. March 2025 19:33