Совсем не безопасен для потоков.
Вам просто нужно добавить ключевое слово synchronized
к объявлению ваших 4 методов.Вам повезло, что такое простое решение работает для вашего класса, потому что это не всегда так.
Одна потенциально сложная проблема - это String[]
, возвращаемый getData
.Вы создаете новый массив при каждом вызове, поэтому у вас не возникает никаких проблем, но было бы сложно синхронизировать, если бы он возвращал какую-то ссылку на внутренний массив.