Для того, чтобы избежать ошибок с многопоточностью, давайте сделаем
два класса для работы со строками: String и StringBuilder.
первый будет immutable (иммутабельным), и таким образом избежим.
Сказали они.
Однако, обладает ли класс StringBuilder свойствами быть thread safe?
Нет!
https://stackoverflow.com/questions/8831385/is-nets-stringbuilder-thread-safe
Вопрос: а зачем тогда было разделять один класс на два?
Использовали бы везде StringBuilder, да и всё.