Kann ich einen Thread innerhalb eines Threads in Java ausführen?

8

In Java muss ich eine Klasse implementieren, die Thread erweitert innerhalb einer anderen ähnlichen Klasse. Ist das möglich?

Ein Beispiel für das, was ich versuche, ist das folgende (vereinfachte) Snippet:

%Vor%

Der zweite Thread wird direkt in den ersten Thread implementiert. Außerdem würde ich gerne wissen, ob die Implementierung eines solchen Mutex funktioniert. Wenn nicht, gibt es einen besseren (Standard) Weg, es zu tun?

Vielen Dank im Voraus.

    
2dvisio 19.06.2012, 19:14
quelle

2 Antworten

19

Das Thread wird nicht 'innerhalb', sondern Seite an Seite 'ausgeführt.

Sie können also ein weiteres Thread starten, um Seite an Seite mit Ihren anderen zwei Thread zu laufen. Tatsächlich kann jedes Thread ein weiteres Thread starten (solange das Betriebssystem dies zulässt).

    
nicholas.hauschild 19.06.2012, 19:15
quelle
5

Ja, das sollte funktionieren und der gemeinsame Mutex sollte es machen. Aus Paranoia würde ich die beiden Mutex-Deklarationen final machen, um irgendwelche seltsamen "Flucht" -Probleme zu vermeiden. z.B.

%Vor%

Ein Vorschlag: Vielleicht ist das mein Stil, aber für Code wie diesen erweitere ich selten Thread . Implementieren Sie stattdessen Runnable . IMO, es ist ein bisschen weniger verwirrend (YMMV hier). Plus, wenn Sie beginnen, erweiterte Gleichzeitigkeitsdienstprogramme wie Executor zu verwenden, behandeln sie Runnables , nicht Threads.

    
user949300 19.06.2012 19:26
quelle

Tags und Links