Класс StringBuffer работает в многопоточных средах следующим образом: он является потокобезопасным, то есть его методы синхронизированы, а экземпляры могут быть использованы несколькими потоками одновременно. 12
Это означает, что только один поток может выполнить метод StringBuffer в определённый момент времени. 4 Однако в силу своей потокобезопасности класс работает медленнее, чем StringBuilder, так как затрачивает дополнительные ресурсы на поддержание синхронизации. 4
Таким образом, использование StringBuffer рекомендуется в многопоточной среде. 5 Если же потокобезопасность не требуется, то лучше выбрать StringBuilder. 4
Следует учитывать, что для работы со StringBuffer требуется больше ресурсов, поэтому он работает немного медленнее, чем StringBuilder. 5