ADRELI_2_THREAD macht unsere Projektfolge spannend! Die Lösung aus dem Projekt ADRELI_1_CON läuft. ADRELI_1_CON ist eine moderate Weiterentwicklung aus dem Erst-Semester-Projekt “Friends”. Im Grunde eine einfache monolithisch Lösung.
Nun steigen wir um auf eine erste MVC-Architektur. MVC steht für model-view-controller. Wir werden innerhalb der JVM (Java Virtual Machine) das bisher monolithische Programm aufteilen in drei Threads.
- Der view-Thread kümmert sich um das User-Interface (character-based, Konsole und Keyboard).
- Der model-Thread kümmert sich um die Datenhaltung (momentan noch im csv-File)
- Der controller-Thread initialisiert die Thread-Infrastruktur: instantiiert view– und model-Thread, die ihre Daten mittels zweier Pipes austauchen. Die Instantiierung der Pipes gehört ebenfalls zum Aufgabenbereiche des Controllers.
Die ersten Überlegungen dazu, sind auf YouTube zu sehen. JAVA_2_PROJEKT_ADRELI_2_THREADING_Grd_Struktur_ohne_pipes
Es geht um die Klasse Thread, die Methode run() und die (veränderte) Methoden-Aufruf-Semantik von Threads im Gegensatz zu “normalen” Methoden. Es geht um “synchrone” vs. “asynchrone” Methodenausführung.
Was Pipes sind und wie der Einbau der Pipes erfolgt, Sie sehen es im nächsten Video. Am Besten den Kanal abonnieren und dabei bleiben.
Tipp: Im Grunde steht alles schon im Skript – vergleichen Sie Video und Skript!
Ich freue mich auf die Diskussion.
Die ersten Thread-Architekturen für das Projekt ADRELI_2_Threads habe ich heute sehen können. Mein Eindruck: einerseits hat die Implementierung entlang des YouTube-Vorschalgs https://youtu.be/lvFrJTwNNTE ganz ordentlich geklappt. Andererseits – häufigster Fehler: die Thread-Methode run() wird nicht mit start() gestartet (so wie’s richtig wäre). Sondern falscherweise mit run() (so wie’s nur für nicht-gethreadete Methoden richtig wäre, sie unter ihrem eigenen Namen zu starten.)