Java sperrt eine statische Methode nicht, es sei denn, Sie fügen das Schlüsselwort synchronized
.
Beachten Sie, dass Sie beim Sperren einer statischen Methode die Mutex des Klassenobjekts, unter dem die Methode implementiert ist, ergreifen, so dass die Synchronisierung einer statischen Methode andere Threads daran hindert, eine der anderen "synchronisierten" statischen Methoden aufzurufen.
In Ihrem Beispiel brauchen Sie in diesem speziellen Fall nicht zu synchronisieren. Das liegt daran, dass die Parameter per Kopie übergeben werden; mehrere Aufrufe der statischen Methode führen also zu mehreren Kopien der Parameter, jede in ihrem eigenen Stackframe. Gleichermaßen führen gleichzeitige Aufrufe von Integer.parseInt(s)
erstellen jeweils ihren eigenen Stack-Frame, wobei Kopien des Wertes von s in die einzelnen Stack-Frames übertragen werden.
Wenn nun Integer.parseInt(...) auf eine sehr schlechte Art und Weise implementiert wurde (es wurden statische nicht-finale Mitglieder während der Ausführung von parseInt verwendet), dann gäbe es einen großen Grund zur Sorge. Glücklicherweise sind die Implementierer der Java-Bibliotheken bessere Programmierer als das.