Frage zur Synchronisation von Methoden
-
Hallo,
ich hätte mal eine Frage zur Synchronisation von Methoden.
Angenommen, ich habe drei Klassen wobei die erste eine statische Methode "test" zur Verfügung stellt:static void test(String string) { String test="Hallo "+string; System.out.println(test); }
Die anderen beiden Klassen sind Threads und rufen diese static-Methode der ersten Klasse auf.
Da ich keine Instanzvariable oder statische Variable in dieser Funktion verwende bzw. die beiden Threads keine gemeinsamen Variablen bearbeiten, habe ich die Methode nicht synchronisiert. Was ist aber mit den lokalen Variablen in der Funktion test? Was ist wenn der erste Thread während der String-Verkettung unterbrochen wird und der zweite Thread weitermacht, string ändert, macht dann Thread 1 wenn er wieder zum Zug kommt seine Arbeit mit der geänderten String-Variable weiter?
Oder bekommt jeder Thread seine eigenen lokalen Variablen?
Sollte die Methode also synchronized sein oder nicht??
Ich hoffe, ihr versteht mein Problem...Gruß
-
Synchronsprecher schrieb:
Oder bekommt jeder Thread seine eigenen lokalen Variablen?
Es bekommt sogar jeder Methodenaufruf seine eigenen lokalen Variablen.
-
Hallo,
das ging ja fix
Problem somit gelöst, herzlichen Dank!!Gruß