Ich habe folgendes Stück Code:Thema Sicherheit auf HashMap.toString() Methode
public Hashmap<String,String> tempmap = new HashMap<String,String>();
und eine Klasse-Funktion:
void f1(){
synchronized(onClassVariable1){
....Some code onClassVariable1...
String tempString = tempMap.toString();
... Some work onClassVarible1 and tempString ...
}
}
Multiple-Thread Aufruf dieser Funktion f1 durch ein Objekt dieser Klasse ..
ist diese Funktion thread-sicher?
Sie können 'Collections.synchronizedMap (tempmap)' verwenden, um eine threadsichere Map zu erhalten. – Stephan
Beachten Sie, dass Sie den synchronisierten Block so kurz wie möglich machen sollten. Wenn Sie mit tempMap fertig sind, beenden Sie den Block, und Sie können den String außerhalb des Blocks bearbeiten. –