Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Da gibt´s meines Wissens nach keine wirkliche Festlegung... wenn du eine freie Vererbung brauchst, würde ich zu Runnable raten (da du damit nur implementierst). Runnable hat halt nur den "Nachteil", dass es keine Thread#start()-Methode kennt (ist ja schließlich auch kein Thread).
Naja, die erste hat den Vorteil, dass die Klasse, die du an den Konstruktor von Thread übergibst noch eine Vererbung (extends) frei hat und du somit noch was anderes damit machen kannst als nur "run". Das allein ist aber natürlich kein Alles-oder-nichts-Kriterium.
hmm, naja, ich kann ja alle Funktionen von Thread nicht nutzen. Wenn ich meinen Thread als SetDaemon(true) haben möchte, müsste ich das ebenfalls von außerhalb machen. Oder kann ich in der Klasse, die Runnable implementiert sowas schreiben wie (Pseudocode, hab grad hier kein Java drauf um nachzugucken, wie die Funktion nochmal heißt)
[c]Thread.getCurrentThread().setDaemon(true);[/c] wird nicht funktionieren da die Methode setDaemon(boolean) nur aufgerufen werden darf solange der Thread noch nicht gestartet wurde.
[c]Thread.getCurrentThread().setDaemon(true);[/c] wird nicht funktionieren da die Methode setDaemon(boolean) nur aufgerufen werden darf solange der Thread noch nicht gestartet wurde.
Naja, wenn ich den Part in den Konstruktor der Runnable Klasse packe, ist der Thread ja eigl auch noch nicht gestartet.
Ich bin eher davon ausgegangen, dass ich das nicht nutzen darf, weil ich von der Runnable Klasse auch eine Instanz anlegen darf, ohne sie an einen Thread zu übergeben.
1: Kann ich den Scheduler explizit darauf hinweisen, dass er nun einen anderen Thread starten soll.
2: Angenommen, ich hab mehrere Threads, die jeweils zugriff auf ein und dasselbe Objekt haben. Kann ich mit Hilfe eines weiteren Threads irgendwie herausfinden, ob das Objekt verändert wurde und von welchem Thread dies kam?
1. Keine Ahnung
2. Ich fürchte, das musst du selbst machen. Also innerhalb der run-Methode den aktuellen Thread merken und eine Variable isSet auf true setzen (damit du weißt, dass irgendwas an deinem Objekt verändert wurde).