In JSON-Java-Bibliothek (org.json.JSONArray) Ich habe diesen Code-Schnipsel mit einem synchronized
Block um ein Verfahren lokalen Variable gefundenNotwendigkeit der Synchronisation auf lokalem Variable
public String toString(int indentFactor) throws JSONException {
StringWriter sw = new StringWriter();
synchronized (sw.getBuffer()) {
return this.write(sw, indentFactor, 0).toString();
}
}
ich die Notwendigkeit nicht für die Synchronisation verstehen hier, wie die StringWriter
ist nur lokal für die angegebene Methode (und warum die Synchronisation auf dem Puffer ist). Ist die Synchronisation hier wirklich notwendig und wenn, warum?
Es ist nicht notwendig. Mit dem Standardkonstruktor ist der Puffer ein neu instanziiertes Objekt. 'buf = new StringBuffer();' im Konstruktor. –
Beachten Sie, dass der Autor der org.json-Bibliothek ein JavaScript-Programmierer und kein Java-Programmierer ist. Diese Tatsache wird im gesamten Code demonstriert. Für ernsthafte JSON-Verarbeitung sollten Sie die Google-Gson-Bibliothek verwenden. –