| 

.NET C# Java Javascript Exception

2
Hallo,

folgende Ausgangslage:
Wenn ich eine Singleton-Klasse habe, die keine Felder enthält, sondern nur Methoden.
Wenn ich dann von mehreren Threads auf den Singleton zugreife und die Methoden aufrufe, verstehe ich das so, dass für jeden Methodenaufruf die lokalen Variablen in der Methode neu initialisiert werden. So hat doch jeder Thread einen eigenen Satz an lokalen Variablen, womit sie sich nicht in die Quere kommen, oder?

Wenn ich mit der obigen Aussage richtig liege: Würde sich das ändern, wenn ich die Klasse mit static erstelle oder wenn ich die Methoden static mache?
News:
09.06.2014
Siggi 229 7
1 Antwort
2
Da liegst Du richtig. Jeder Aufruf Deiner Methode bekommt seinen eigenen Stack mit den lokalen Variablen darauf. Die kommen sich nicht in die Quere, und daran ändert sich auch nichts, wenn Du die Klasse oder die Methode static machst.

Ausnahmen gibt es für Iterator-Blöcke und anonyme Methode, wie hier erklärt wird:

http://stackoverflow.com/questions/679448/thread-safety-and-local-variables
10.06.2014
Matthias Hlawatsch 13,2k 4 9
Das ist das Verhalten, worauf ich mein derzeitiges Projekt aufbauen will. Ich habe es zwar gewusst, jedoch hätte ich dafür meine Hand nicht ins Feuer gelegt. Schön, dass du es noch mal bestätigt hast. Danke. Danke auch für den Link. Ich wusste von keinen Ausnahmen.
Siggi 10.06.2014

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH