Вопросы к Поиску с Алисой
Синхронизация методов в StringBuffer работает так, что все операции с конкретным экземпляром выполняются как будто в последовательном порядке, который соответствует порядку вызовов методов каждым из участвующих потоков. docs.oracle.com stackoverflow.com
Это обеспечивает потокобезопасность класса, то есть возможность безопасного выполнения операций изменения строки в многопоточной среде. github.com
Пример работы синхронизации: ключевое слово synchronized
в методе append() гарантирует, что только один поток сможет выполнить его в одно и то же время, тем самым предотвращая состояние гонки. github.com
При этом, если происходит операция с последовательностью источника (например, добавление или вставка из неё), класс синхронизирует только сам StringBuffer, выполняющий операцию, а не источник. docs.oracle.com