Welchen Sinn hat ein Runnable

5050

Neues Mitglied
Ein Runnable ist ja ein Interface, dass die Methode run() will. Da die Methode run() aber leer ist und ich sie fülle, versteh ich nicht ganz wofür ich ein Runnable brauche. Das was das Runnable am Ende ausführt, hätte das nicht auch jede x-beliebige selbstgeschriebene Methode ausführen können? Welchen Sinn hat ein Runnable?
Danke schon Mal im Voraus;)
 

dennisbauer

Aktives Mitglied
Die Thread-Klasse ist eine direkte Abstraktion deiner CPU-Cores. Da unter einem Quad-Core z.B. nur 4 "echte" Kerne zur Verfügung stehen, du in einem Programm jedoch mal 10 Threads erzeugen möchtest, greifst du theoretisch gesehen auf 6 "virtuelle" Kerne zu.

Der Sinn hinter dem ganzen ist, dass dir die Thread-Klasse eine Ebene zum arbeiten anbietet, das Runnable, das hier verwendet wird, ist, wie du sagst, ein Interface mit der Run-Methode. Da Runnable aber nun rein auf Java-Seite anzusiedeln ist, die Thread-Klasse einen Spagat zwischen Java-Welt und der Maschine, ergibt sich bereits, dass die Thread-Klasse nicht ohne weiteres klonbar ist.

Im Klartext: Eine Thread-Klasse ist nicht wiederverwendbar, hauptsächlich, wegen diesem Bezug auf dein System.

Die Runnable-Implementierungen jedoch kannst du immer wiederverwenden, musst zur Ausführung lediglich eine neue Thread-Instanz erzeugen. Gleiches gilt auch für Threadpools, welche auch immer eine Runnable-Instanz erfordern und intern immer wiederverwenden können.
 

mrBrown

Super-Moderator
Mitarbeiter
Das ganze ist sogar noch abstrakter: Threads sind nur irgendwas, was unabhängig voneinander ausgeführt wird. Die müssen (und haben sie mWn früher auch nicht) nicht mal einem nativem Thread entsprechen.

Das Threads nicht wiederverwendbar sind ist einfach nur eine Einschränkung der Klasse Thread, die nicht (zwingend auf jedem System) notwendig ist. Mit ein bisschen Reflection kann man Threads durchaus wieder neu starten ;)

Gleiches gilt auch für Threadpools, welche auch immer eine Runnable-Instanz erfordern und intern immer wiederverwenden können.
Eigentlich genau andersrum, die Threads werden wiederverwendet, und jedes Runnable nur einmal ausgeführt
 

stg

Top Contributor
Ohne überhaupt auf Threads einzugehen:

Versuche doch für dich zunächst einmal zu klären, was Interfaces überhaupt genau sind und wofür man sie einsetzt.
Stichworte: Polymorphism, Coupling
Weiter ausgeholt auch: Testbarkeit, Dependency Injection
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
K Für was braucht man die left und right shift operatoren? Was bringen die, also welchen Zweck haben die? Java Basics - Anfänger-Themen 15
F Welchen Layout Manager wählen? Java Basics - Anfänger-Themen 13
K Welchen Typ haben Variablen in Default-Methoden und in statischen Methoden in Schnittstellen? Java Basics - Anfänger-Themen 4
S Welchen Bereich sollte ich favorisieren? Java Basics - Anfänger-Themen 3
E java lernen mit welchen mitteln Java Basics - Anfänger-Themen 37
J Welchen kostenlosen GUI-Builder nehmen? Java Basics - Anfänger-Themen 5
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
I ComponentListener zu welchen Zeitpunkt aktiv Java Basics - Anfänger-Themen 5
J Welchen Layoutmanager nehmen? Java Basics - Anfänger-Themen 4
L welchen fehler übersehe ich? ...kompilieren funkt. nicht Java Basics - Anfänger-Themen 23
G Welchen Layoutmanager verwenden? Java Basics - Anfänger-Themen 7
R Welchen Datentyp verwenden? Java Basics - Anfänger-Themen 12
D Programmierstil - Bei Vererbung welchen Typ benutzen? Java Basics - Anfänger-Themen 8
N Eclipse und ascii codes, welchen wählen? Java Basics - Anfänger-Themen 3
G Welchen package-Namen wählen, wenn man keine Domain hat? Java Basics - Anfänger-Themen 11
D Welchen Namen darf ein Konstruktor haben? Java Basics - Anfänger-Themen 6
S externe lib´s in welchen ordner packen? Java Basics - Anfänger-Themen 6
S welchen layoutmanager Java Basics - Anfänger-Themen 9
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
W Sinn eines Singleton ? Java Basics - Anfänger-Themen 14
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
E Sinn: final in Parameterliste verwenden Java Basics - Anfänger-Themen 2
B Sinn von Lambdas? Java Basics - Anfänger-Themen 16
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
B Der Sinn von Arrays Java Basics - Anfänger-Themen 2
Q Container sinn? Java Basics - Anfänger-Themen 3
S string index out of range - es ergibt keinen Sinn Java Basics - Anfänger-Themen 6
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
J Sinn/Nutzen von Scanner Java Basics - Anfänger-Themen 23
B Sinn von Reflections Java Basics - Anfänger-Themen 10
H Vererbung Prinzip der Ersetzbarkeit-Sinn? Java Basics - Anfänger-Themen 9
F Sinn der SuppressWarnings("unused")-Annotation Java Basics - Anfänger-Themen 5
R Sinn des programmes Java Basics - Anfänger-Themen 10
W Sinn von Konstruktorsyntax und finalize Java Basics - Anfänger-Themen 14
J Worin besteht der Sinn und Anwendungsbereich von Dreidimensionalen Arrays? Java Basics - Anfänger-Themen 11
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
T Sinn von finally? Java Basics - Anfänger-Themen 3
M Variablen Zinseszinsberechnung - Variable ergibt keinen Sinn Java Basics - Anfänger-Themen 15
A Klassen Sinn des Konstruktors Java Basics - Anfänger-Themen 12
P Sinn des Security Managers Java Basics - Anfänger-Themen 2
D Sinn von Jar Dateien Java Basics - Anfänger-Themen 5
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
hdi Sinn von RuntimeExceptions? Java Basics - Anfänger-Themen 90
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
L Sinn hinter Generic? Java Basics - Anfänger-Themen 5
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
M Variable überwachen und Sinn eines Threads Java Basics - Anfänger-Themen 7
G Sinn vo OOP Java Basics - Anfänger-Themen 5
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
G sinn von JList Java Basics - Anfänger-Themen 6
K Sinn von Interfaces Java Basics - Anfänger-Themen 10
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
krgewb Runnable JAR File Export Java Basics - Anfänger-Themen 11
javajoshi Problem mit zwei Threads und Arrays (Runnable) Java Basics - Anfänger-Themen 12
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
G Moving Objects with Threads (implements Runnable) Java Basics - Anfänger-Themen 1
R Compiler-Fehler Runnable-Jar != Eclipse Java Basics - Anfänger-Themen 5
U Externe Library im non runnable jar File im eclipse Java Basics - Anfänger-Themen 1
K Runnable oder Keyadapter läuft falsch Java Basics - Anfänger-Themen 4
T Java Projekt als runnable jar file exportieren inklusive csv Dateien Java Basics - Anfänger-Themen 4
Helgon Unterschied runnable und normale jar Java Basics - Anfänger-Themen 6
Helgon Interface Runnable Frage / Schnittstellen allgemein Java Basics - Anfänger-Themen 3
6 JDK installieren Runnable Jar Files ausführen?! Java Basics - Anfänger-Themen 8
O Erste Schritte Runnable Jar <- Ordner Fehlen Java Basics - Anfänger-Themen 6
Y Threads extends Thread oder implements Runnable Java Basics - Anfänger-Themen 10
V Kein neuer Thread trotz Runnable Java Basics - Anfänger-Themen 4
F Icon der runnable jar ändern Java Basics - Anfänger-Themen 3
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
S Bild-Resource in Runnable Jar Java Basics - Anfänger-Themen 15
T Thread oder Runnable? Java Basics - Anfänger-Themen 3
J new Runnable Java Basics - Anfänger-Themen 4
M FileWriter innerhalb runnable Jar Java Basics - Anfänger-Themen 8
M Jpg und wav datei pfadangabe bei Runnable Jar file Java Basics - Anfänger-Themen 2
? Oracle jpr runnable target Java Basics - Anfänger-Themen 2
R Threads / Interface Runnable Java Basics - Anfänger-Themen 7
A Frage zu Datenzugriff bei new Thread(new Runnable) Java Basics - Anfänger-Themen 8
U Projekt als Runnable Jar exportieren Java Basics - Anfänger-Themen 4
P probleme mir Runnable Jar Java Basics - Anfänger-Themen 5
E Zugriff aus einer Runnable auf die Oberklasse Java Basics - Anfänger-Themen 2
chik Problem mit der Runnable Methode Java Basics - Anfänger-Themen 3
StickToFreak Runnable + KeyListener? Java Basics - Anfänger-Themen 32
S Runnable jar "Could not find main class" Java Basics - Anfänger-Themen 8
F Alternativen zu runnable JAR? Java Basics - Anfänger-Themen 13
F Classpath: Wichtig für Runnable JAR? Java Basics - Anfänger-Themen 2
F Projektstruktur und runnable JAR! Java Basics - Anfänger-Themen 6
F Runnable JAR Programm kann nur über Konsole gestartet werden Java Basics - Anfänger-Themen 9
S runnable jar datei sql fehler Java Basics - Anfänger-Themen 5
G Innerhalb von Runnable auf super. zugreifen? Java Basics - Anfänger-Themen 3
S Was ist "Runnable"? Java Basics - Anfänger-Themen 25

Ähnliche Java Themen

Neue Themen


Oben