Das Interface Runnable (alternativ Callable) definiert die Methode run(). Darin wird der parallel auszuführende Code definiert.
public class MyClass implements Runnable {
@Override
public void run() {
// Diese Methode wird dann vom neu erstellten Thread ausgeführt
}
}
public class Main {
public static void main(String[] args) {
// So wird der Thread dann gestartet
// Dies kann von überall aus passieren
Thread meinThread = new Thread(new MyClass());
meinThread.start();
}
}Verkürzte Schreibweise
Analog kann man auch direkt von der Klasse Thread erben und darin die Methode run() überschreiben.
public class MyClass extends Thread {
@Override
public void run() {
// Diese Methode wird dann vom neu erstellten Thread ausgeführt
}
}
public class Main {
public static void main(String[] args) {
// thread starten
MyClass meinThread = new MyClass();
meinThread.start();
}
}Beispiel
Runnable task = () -> IntStream.range(1, 4)
.mapToObj(i -> i + " ")
.forEach(System.out::print);
new Thread(task).start();
new Thread(task).start();
new Thread(task).start();Ausgabe:
1 1 1 2 2 3 2 3 3