Gleichzeitige Zugriff auf eine statische Methode

8

Wir haben ein Szenario, in dem mehrere Threads eine statische Methode wie die folgende aufrufen:

%Vor%

Könnte es ein Problem der Inkonsistenz verursachen, wenn 100 Threads es aufrufen?

    
GAS 06.07.2011, 08:21
quelle

4 Antworten

19

Nein. Dies wird nicht von Nebenläufigkeitsproblemen leiden.

1) Der übergebene Parameter ist ein String, der eine unveränderliche Klasse ist (sein Wert kann nicht geändert werden)

2) Die Methode versucht nicht, einen gemeinsamen Status zu ändern

    
Mark Pope 06.07.2011, 08:22
quelle
4

Die Methode greift nicht auf einen gemeinsamen Status zu. Also, nein - es wird keine Probleme verursachen.

    
01es 06.07.2011 08:23
quelle
4

Nein, weil es keinen gemeinsamen Status gibt. Selbst wenn Sie diese Methode mit der gleichen Zeichenkette s aufrufen, ist sie trotzdem sicher, da String unveränderlich und threadsicher ist.

BTW StringUtils.isEmpty() Methode in Apache Commons macht das gleiche.

    
Tomasz Nurkiewicz 06.07.2011 08:23
quelle
0

's' ist die übergebene Variable und es gibt nichts anderes in der Methode definiert, es sollte kein Problem sein, wenn 100 Threads es aufrufen

    
Sap 06.07.2011 08:28
quelle