Scusate la mia ignoranza ma cosa fa la parola "synchronized"? Ho visto alcuni esempi che la usavano così:

codice:
public String (StringBuffer buffer) {
        synchronized(buffer) {
            buffer.setShared();
            this.value = buffer.getValue();
            this.offset = 0;
            this.count = buffer.length();
        }
    }