Biesterfeld: Threads

Beitrag lesen

Hej,

Vorschlag:
In Java MUSS jeder Thread eine Instanz einer Klasse sein.

Und mehr noch: Es muss entweder eine Instanz der Klasse Thread sein oder Runnable implementieren und einem neuen Thread übergeben werden.

Das Problem ist nun, dass ich irgendwie die Referenzen übergeben muss. Habe das nun wie folgt gemacht, was ich etwas unsauber finde:

Also prinzipiell kannst du das so machen. Etwas sauberer wirds wenn deine GUI eher eine Methode anbietet

void update(int serverConnections, int connectedClients ){  
  serverConnection.setText( Integer.toString( serverConnections ) );  
  countOfConnectedClients.setText( Integer.toString( connectedClients ) );  
}

die dann von ThreadStatistic aufgerufen wird, du also wenigstens die Labels in der entsprechenden GUI-Klasse kapselst. Ferner möchtest du unbedingt deinen Thread als Dämon starten.

Diese Instanzen (1) haben statische Methoden die die aktuelle Anzahl von Verbindungen ausgeben. Diese möchte ich nun mit einem Thread alle 5s auslesen und in der GUI darstellen.

Hier würde ich ansetzen. Wieso muss das so sein? Anstatt eines Threads würde ich eine einfache Controller-Klasse schreiben, die zum einen die Labels in der GUI verändern kann. Zum anderen hast du doch mit Sichereit eine Klasse die die Verbindungsinstanzen herstellt. Dieser Klasse würde ich diesen Controller als Listener hinzufügen. Sprich, wann immer eine neue Verbindung erzeugt oder beendet wird, wird der Controller informiert, dass es eine Veränderung gab und dieser gibt die Information an die GUI weiter.

Beste Grüße
Biesterfeld

--
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz