Wie kann ich zwischen verschiedenen Threads Informationen austauschen
Ich könnte mir vorstellen zum Beispiel globale Variablen zu verwenden.
Nun bin ich gespannt welche Lösungen ihr kennt.
Die Antwort ist so komplex wie die Frage auch und hängt natürlich erstmal davon ab, wie Du die Threads und wo Du die Threads generierst.
1) durch eine Klasse "Test implements Runnable" und irgendwo darin ist dann "new Thread(this).start()"
2) durch eine Klasse "Test extends Thread" und irgendwo aussen ist dann "new Test().start()"
3) der Thread steckt in einer anonymen inneren Klasse (schmutzig aber manchmal gut).
Der Rest ist Teils eine philosophische Frage und hängt auch davon ab, was mit der Variablen gemacht wird.
Günstig ist es aber immer, dass man in der Klasse des Threads das zu bearbeitende Objekt privat hat und es nur über einen Getter abholen bzw. über einen Setter füllen kann.
Grundsätzlich gibt es aber 2 Fälle:
1) mehrere Threads gleichen Ursprungs beackern die gleiche Variable. Dann definiert man sie in der Threadklasse "static", ggf. auch als "volatile static" (siehe
hier zum Thema "volatile").
2) mehrere ganz unterschiedliche Threads müssen auf die gleiche Variable zugreifen. Da baut man sich am besten eine Containerklasse wo alle übergreifenden Variablen definiert werden und stellt sie via Methodenparameter dem Thread zur Verfügung. Ob volatile (oder auch nicht) muss man dann schauen.
Bernd