Appearance
Kapitel 18: Multithreading Grundlagen
🎯 Lernziele
- Was sind Threads?
- Thread erstellen (2 Methoden)
- Thread starten
18.1 Thread-Konzept
🧵 Was ist ein Thread?
Thread = Leichtgewichtiger Ausführungspfad innerhalb eines Programms.
Vorteile:
- ✅ Parallelverarbeitung (mehrere Aufgaben gleichzeitig!)
- ✅ Effizienz (CPU-Leerlauf vermeiden)
🔄 Single-Thread vs. Multi-Thread
| Single-Thread | Multi-Thread |
|---|---|
| Nur 1 Aufgabe gleichzeitig | Mehrere Aufgaben gleichzeitig |
| Blockiert bei Wartezeit | Nutzt Wartezeit für andere Aufgaben |
18.2 Thread erstellen (2 Methoden)
Methode 1: Thread-Klasse erweitern (extends Thread)
java
class MeineThread extends Thread {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println(getName() + ": " + i);
try { Thread.sleep(500); } catch (InterruptedException e) {}
}
}
}
public class ThreadBeispiel1 {
public static void main(String[] args) {
MeineThread t1 = new MeineThread();
MeineThread t2 = new MeineThread();
t1.start(); // Thread starten!
t2.start();
}
}Methode 2: Runnable-Interface implementieren (empfohlen!)
java
class MeineRunnable implements Runnable {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println(Thread.currentThread().getName() + ": " + i);
try { Thread.sleep(500); } catch (InterruptedException e) {}
}
}
}
public class ThreadBeispiel2 {
public static void main(String[] args) {
Thread t1 = new Thread(new MeineRunnable());
Thread t2 = new Thread(new MeineRunnable());
t1.start();
t2.start();
}
}→ Methode 2 (Runnable) ist flexibler (Klasse kann noch andere erweitern!)
18.3 Thread starten
⚠️ Achtung: run() vs. start()!
java
Thread t = new Thread(new MeineRunnable());
t.run(); // ❌ Falsch! Führt Thread im aktuellen Thread aus (kein neuer Thread!)
t.start(); // ✅ Richtig! Startet neuen Thread (ruft run() auf)!📝 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅ Thread = Leichtgewichtiger Ausführungspfad
- ✅ Thread erstellen (
extends Threadoderimplements Runnable) - ✅ Thread starten (
start())
💡 Merksatz für Anfänger
"Für Multithreading:
implements Runnable+start()!"
🎯 Nächste Schritte
Im nächsten Kapitel lernst du:
- Lernplanung (Kapitel 19)
- JavaWeb Lernweg
- Framework lernen (SpringBoot)
- Karriereberatung
📚 Weiterführende Links:
💬 Fragen?
Hinterlassen Sie einen Kommentar!
