Das Ziel der vorliegenden Arbeit besteht darin die Grundlagen der Nebenläufigkeit in Java zu erläutern und dessen Relevanz in der Bewältigung komplexer softwaretechnischer Problemstellungen aufzuzeigen. Daraus abgeleitete Modalziele sind folglich die Definition und Abgrenzung von Threads zu einem Prozess und dessen Einsatz in Java, sowie die Gegenüberstellung der Vor- und Nachteile von Nebenläufigkeit im Rahmen von zwei praktischen Anwendungsfällen.
Zu Beginn der Arbeit werden die theoretischen Grundlagen bezüglich der objektorientierten Programmierung und der Programmiersprache Java geklärt. Des Weiteren werden die Begriffe Prozess und Thread, sowie deren Unterschiede, erläutert. Der Grundlagenteil schließt mit der Ausführung von Threads in Java und der Definition der Nebenläufigkeit ab. Im Anschluss daran erfolgt die praktische Umsetzung der Datenbankanwendung unter Verwendung von Threads. Zuerst wird die verwendete Datenbankumgebung und dessen Aufbau beschrieben. Daraufhin folgt die Ausführung von zwei praktischen Anwendungsfällen zur Realisierung der Nebenläufigkeit. Hierfür werden für jeden Fall die Vorgehensweise zur Implementierung und Gegenüberstellung der daraus entstehenden Vor- und Nachteile dargestellt. Dabei wird zudem auf Verbesserungsmöglichkeiten der Implementierung eingegangen. Am Schluss folgt eine Dokumentation der wichtigsten Ergebnisse der Arbeit mit einer darauffolgenden kritischen Würdigung.
Inhaltsverzeichnis
1 Einleitung
1.1 Begründung der Problemstellung
1.2 Zielsetzung
1.3 Aufbau der Arbeit
2 Theoretische Grundlagen und Begriffsdefinitionen
2.1 Objektorientierte Programmierung
2.2 Programmiersprache Java
2.3 Nebenläufigkeit
2.4 Prozess
2.5 Thread
2.6 Threads in Java
3 Umsetzung einer Datenbankanwendung unter Verwendung von Threads in Java
3.1 Architektur der Systemumgebung
3.2 Paralleles Ausführen von Aufgaben mithilfe eines Thread-Pools
3.2.1 Implementierung
3.2.2 Vor- und Nachteile
3.3 Connection Pool zum parallelen Datenbankzugriff
3.3.1 Implementierung
3.3.2 Vor- und Nachteile
3.4 Verbesserungsmöglichkeiten hinsichtlich der Umsetzung
4 Schluss
4.1 Zusammenfassung
4.2 Kritische Würdigung
Zielsetzung & Themen
Diese Arbeit befasst sich mit den theoretischen Grundlagen der Nebenläufigkeit (Multithreading) in Java und deren praktischer Anwendung zur Performancesteigerung in einer datenbankorientierten Softwareumgebung. Dabei wird untersucht, wie durch den gezielten Einsatz von Thread-Pools und Connection-Pooling komplexe Systemanforderungen effizient bewältigt werden können.
- Grundlagen der nebenläufigen Programmierung und Java-Multithreading
- Architekturplanung einer Datenbankanwendung mit JDBC
- Implementierung paralleler Aufgabenverarbeitung via Thread-Pool
- Optimierung des Datenbankzugriffs durch Connection-Pooling
Auszug aus dem Buch
3.2.1 Implementierung
Zur Erfüllung der Anforderung Anweisungen im Rahmen der Java Anwendung parallel ausführen zu können bedarf es der Erstellung eines Tread-Pools in Kombination mit der Einbindung der Klassen zur Bearbeitung der Aufgaben. In dieser Arbeit wurde sich aus den beiden bestehenden Methoden für die Implementierung des Interfaces Runnable entschieden. Demzufolge muss dessen Einbindung in der Klassenerstellung festgelegt und die Methode run(), welche den auszuführenden Code beinhaltet, überschrieben werden. Im Rahmen der Aufgabenklassen wird zudem ein Objekt der zugehörigen Basisklasse als Attribut einbezogen, welches in der main() beim Anlegen der Aufgabe übergeben wird. Beispielhaft kann hierfür die Aufgabenklasse „InsertBenutzer“ zum Anlegen eines neuen Benutzers und die dazugehörige Basisklasse „Benutzer“ angeführt werden.
Dabei ist zusätzlich zu erwählen, dass jedes Objekt einer Basisklasse als Attribut ein Objekt der Klasse „ConnectionPool“ beinhaltet, was noch präziser in Kapitel 3.3 erläutert wird. Es ergeben sich die nachfolgenden beiden UML-Klassendiagramme (siehe Abbildung 6).
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel erläutert die Relevanz der Softwareentwicklung mit Java sowie die Zielsetzung, die theoretischen Grundlagen und die praktische Eignung von Nebenläufigkeit aufzuzeigen.
2 Theoretische Grundlagen und Begriffsdefinitionen: Hier werden essentielle Begriffe wie objektorientierte Programmierung, Prozess, Thread und Nebenläufigkeit definiert, um ein Verständnis für die Systemarchitektur zu schaffen.
3 Umsetzung einer Datenbankanwendung unter Verwendung von Threads in Java: Dieses Kapitel beschreibt die praktische Implementierung einer datenbankgestützten Anwendung unter Nutzung von Thread-Pools und Connection-Pools zur effizienten Ressourcensteuerung.
4 Schluss: Die Arbeit schließt mit einer Bilanz der Ergebnisse und einer kritischen Würdigung der gewählten Methodik sowie Verbesserungsvorschlägen für die Implementierung.
Schlüsselwörter
Nebenläufigkeit, Java, Multithreading, Thread-Pool, Datenbankanwendung, JDBC, Connection-Pooling, Softwareentwicklung, Performance, Programmierung, Prozess, Objektorientierung, Synchronisation, Systemarchitektur, Implementierung
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit beschäftigt sich mit der Implementierung von Nebenläufigkeit in der Programmiersprache Java und deren Anwendung zur Performancesteigerung innerhalb eines kompakten Datenbank-Szenarios.
Was sind die zentralen Themenfelder?
Die Kerngebiete sind objektorientierte Programmierung, Multithreading-Konzepte in Java, Verbindungsmethoden zu Datenbanken mittels JDBC sowie das Ressourcenmanagement durch Thread- und Connection-Pools.
Was ist das primäre Ziel oder die Forschungsfrage?
Das Ziel ist es, die Grundlagen der Nebenläufigkeit zu erläutern und den Nutzen, sowie die Vor- und Nachteile dieser Technologie im Rahmen praktischer Anwendungsbeispiele aufzuzeigen.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit basiert auf einer theoretischen Fundierung durch Literaturrecherche und der praktischen Umsetzung einer Datenbankanwendung, um verschiedene Implementierungsszenarien zu evaluieren.
Was wird im Hauptteil behandelt?
Im Hauptteil stehen die Architektur einer Datenbankanwendung, die parallele Aufgabenverarbeitung mittels Thread-Pools und die effiziente Verwaltung von Datenbankverbindungen durch den Connection-Pool im Fokus.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die Arbeit wird maßgeblich durch Begriffe wie Nebenläufigkeit, Multithreading, Java, Connection-Pooling und Datenbankperformance charakterisiert.
Warum wird in der Datenbankanwendung auf eine Benutzeroberfläche verzichtet?
Der Fokus liegt rein auf der technischen Ausarbeitung der Nebenläufigkeits-Logik, weshalb auf grafische Benutzeroberflächen zugunsten der Konzentration auf die Backend-Prozesse verzichtet wurde.
Was ist der Vorteil eines Connection-Pools?
Ein Connection-Pool spart Rechenzeit durch das Vorhalten bestehender Datenbankverbindungen und ermöglicht eine Skalierung bei begrenzter Verbindungsanzahl, was die Gesamtleistung des Systems verbessert.
- Quote paper
- Fabian Schnabel (Author), 2023, Grundlagen der Nebenläufigkeit in Java, Munich, GRIN Verlag, https://www.grin.com/document/1462252