Java Threads

© peshkova – stock.adobe.com

Ein grundlegendes Verständnis von Multithreading ist für jeden Java-Programmierer unerlässlich, da es einen erheblichen Einfluss auf die Leistung und Effizienz eines Programms haben kann. In diesem Blogbeitrag werden wir die Grundlagen von Threads in Java behandeln und erklären, wie sie zur gleichzeitigen Ausführung mehrerer Aufgaben verwendet werden können.

Was sind Threads?

Ein Thread ist die kleinste Einheit eines Prozesses, die unabhängig von anderen Einheiten ausgeführt werden kann. Mehrere Threads innerhalb eines Prozesses teilen sich denselben Datenraum, was bedeutet, dass sie auf dieselben Variablen und Objekte zugreifen und diese verändern können. Dies ermöglicht eine hohe Integration und Kommunikation zwischen Threads.

In Java ist Multithreading ein Kernkonzept, da die Java Virtual Machine (JVM) von Anfang an für Multithreading konzipiert wurde. Ein Java-Programm wird standardmäßig als ein einzelner Thread ausgeführt, bekannt als Haupt-Thread (main thread). Weitere Threads können jedoch vom Haupt-Thread aus erstellt und gestartet werden.

Erstellung von Threads in Java

In Java gibt es zwei grundlegende Wege, um Threads zu erstellen:

In beiden Fällen definieren wir eine run-Methode, die den Code enthält, der in dem neuen Thread ausgeführt wird. Um den Thread zu starten, rufen wir die start-Methode auf.

Multithreading in Aktion

Multithreading ermöglicht es einem Programm, mehrere Aufgaben gleichzeitig auszuführen.

class PrinterThread extends Thread {
  String message;
  PrinterThread(String message) {
    this.message = message;
  }
  public void run() {
    for(int i = 0; i < 5; i++) {
      System.out.println(message);
      try {
        Thread.sleep(1000); // Pausiert den Thread für 1 Sekunde
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
}

public class Main {
  public static void main(String[] args) {
    PrinterThread t1 = new PrinterThread("Hello");
    PrinterThread t2 = new PrinterThread("World");
    t1.start();
    t2.start();
  }
}

In diesem Beispiel haben wir zwei Threads, die gleichzeitig laufen und abwechselnd „Hello“ und „World“ drucken. Beachten Sie, dass die tatsächliche Ausgabe variieren kann, da die genaue Reihenfolge, in der die Threads ausgeführt werden, von der Thread-Scheduling-Politik der JVM und des Betriebssystems abhängt.

Zusammenfassung

Threads sind eine mächtige Funktion in Java, die es uns ermöglicht, anspruchsvolle Programme zu schreiben, die mehrere Aufgaben gleichzeitig ausführen können. Durch das Verständnis der Grundlagen von Threads und wie sie in Java verwendet werden, können wir Anwendungen entwickeln, die effizienter und responsiver sind.