Wenn zwei Threads zum gleichen Zeitpunkt eine statische Funktion aufrufen, gibt es ein Parallelitätsrisiko? Und wenn diese Funktion ein statisches Mitglied der Klasse verwendet, gibt es sogar ein größeres Problem?Statische Funktion Parallelität ASP.NET
- Sind die beiden Anrufe voneinander getrennt? (Die Funktion ist wie für die beiden Threads kopiert?)
- Sind sie automatisch in die Warteschlange eingereiht?
Zum Beispiel gibt es im nächsten Beispiel ein Risiko?
private static int a = 5;
public static int Sum()
{
int b = 4;
a = 9;
int c = a + b;
return c;
}
Und nächstes Beispiel, gibt es ein Risiko?
public static int Sum2()
{
int a = 5;
int b = 4;
int c = a + b;
return c;
}
Update: Und in der Tat, wenn beide Funktionen in der gleichen Klasse sind, was ist das Risiko dann?
thx, Lieven Cardoen
ich zum ersten Beispiel geändert. Jetzt ist es wahrscheinlich nicht mehr threadsicher? –
Gibt es gute Referenzen, Bücher, Links zu diesem Thema + Wie können Sie mit diesen Situationen umgehen? –
http://www.amazon.com/Concurrent-Programming-Java-TM-Principles/dp/0201310090/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1237967873&sr=8-3 sollte Ihnen gut dienen – krosenvold