Laden...

Statischer Methodenaufruf aus 2 Threads gleichzeitig?

Erstellt von Taki Haki vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.737 Views
Taki Haki Themenstarter:in
168 Beiträge seit 2005
vor 16 Jahren
Statischer Methodenaufruf aus 2 Threads gleichzeitig?

Hallo,

wie im Betreff schon beschrieben, was passiert dann? Wird dann das Programm abstürzen oder wird das intern ihrgendwie geregelt? Ich habe mir ein "IsInUse" Flag (bool) in die statische Klasse gepackt was beim Start und Ende des Methodenaufrufs immer gesetzt wird. Bei einem Aufruf der Methode wird dann vorher immer erst das Flag abgefragt und nur wenn die Methode gerade nicht am laufen ist wird diese neu aufgerufen.

Jetzt wollte ich mal wissen ob das umsonst ist oder schon sinnvoll.

mfg Taki

B
1.529 Beiträge seit 2006
vor 16 Jahren

Das einzige Problem, dass bei mehreren Threads auftritt, ist der Schreibzugriff auf gemeinsam genutzte Objekte (in dem Fall also statische Klassenmember). Lokale Variablen sind unproblematisch.
Suche => Synchronisation

EDIT: Variablen durch Objekte ersetzt.

Taki Haki Themenstarter:in
168 Beiträge seit 2005
vor 16 Jahren

ah ok aber wenn die statsische Methoden sagen wir auf eine Datei zugreifen kommt es ja auch zu Problemen. Also ist das in meinem Fall ja doch sinnvoll.

Danke für den Tip Borg.

mfg Taki

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Taki Haki,

ja, sicher kann es bei gleichzeitigem Zugriff Probleme geben, aber das muss auch nicht so sein. Es hängt immer davon ab, was die Methode macht. Eine pauschale Antwort lässt sich nicht geben.

Das mit dem Flag ist kein wirksamer Schutz. Wenn du gleichzeitigen Zugriff verhindern willst, verwende die normalen Mittel zur Prozess-/Thread-Synchronisation (lock, Monitor, Semaphoren, ...)

herbivore