Diskussion:Java Standard: Threads
Abschnitt hinzufügenVerständnisfrage
[Bearbeiten]Hallo, was sind die Unterschiede zwischen Methode 1 und 2? Grüße 87.162.124.88 10:06, 25. Apr. 2009 (CEST)
- Der Unterschied ist, dass wer nur deshalb von Thread erbt, das Konzept der Objektorientierung [OO] nicht verstanden hat (!). OO ist zwar hier nicht Thema aber das Grundprinzip lautet lachs formuliert... erweitere eine Klasse, wenn du deren Funktionalität erweitern willst. Die Klasse Thread kann nebenläufige Aufgaben durchführen - das ist deren Zweck. Wer jetzt also nur etwas Nebenläufig ausführen will hat somit - aus OO Sicht - keinerlei Begründung dies durch Ableiten der Klasse durchzuführen.
- Außerdem ist es eleganter Interfaces zu benutzen, um sich nicht dem Problem der Mehrfachvererbung stellen zu müssen...
- --Bastie 16:17, 30. Apr. 2009 (CEST)
Größe des Kapitels
[Bearbeiten]Der Inhalt ist vermutlich angemessen. Ich möchte dennoch anregen, das Kapitel in mehrere Unterkapitel (einzelne Seiten) aufzuteilen und das im Inhaltsverzeichnis deutlich zu machen. -- Jürgen 12:56, 2. Feb. 2016 (CET)
Automatisches Starten von Threads
[Bearbeiten]Die zweite unter "Methode 1" angegebene Variante, bei der die Methode start()
der Klasse SimpleThread
schon im Konstruktor aufgerufen wird, sollte man aus zwei Gründen eher vermeiden:
1. Es könnte sein, dass es eine Klasse gibt, welche von SimpleThread
abgeleitet ist und dann (implizit oder explizit) Konstruktor von SimpleThread
aufruft. Etwaige zusätzliche Instanzvariablen der Unterklasse wären dann aber noch nicht initialisiert, so dass der Thread schon laufen würde, bevor die Objektinitialisierung abgeschlossen wäre. Wäre die Klasse SimpleThread
allerdings als final
deklariert, würde dieser Punkt natürlich ausscheiden.
2. Grundsätzlich erwarten Programmierende nicht, dass eine Instanz einer Thread-Klasse schon gestartet wird, wenn der Konstruktor aufgerufen wird. Das könnte zu Verwirrung oder zu Programmfehlern führen. 84.142.244.149 12:40, 29. Mai 2024 (CEST)