Хорошо. Если я правильно понимаю вашу проблему, вы беспокоитесь, что 2 объекта, изменяющих состояние общего объекта, повредят друг друга.
Короткий ответ: да, они будут.
Если объект дорог в создании, но нужен только для чтения. Я предлагаю вам сделать его неизменным, так вы получите преимущество, заключающееся в быстром доступе и в то же время безопасном потоке.
Если состояние должно быть доступно для записи, но вам не нужны потоки, чтобы видеть обновления друг друга. Вы можете просто загрузить объект один раз в неизменный кеш и просто вернуть копии любому, кто запрашивает объект.
Наконец, если ваш объект должен быть доступен для записи и совместного использования (по другим причинам, кроме того, что он просто дорогой для создания). Тогда, мой друг, тебе нужно заботиться о безопасности потоков, я не знаю твоего случая, но ты должен взглянуть на синхронизированное ключевое слово, функции одновременного блокирования и Java 5, атомарные типы. Я уверен, что один из них удовлетворит вашу потребность, и я искренне желаю, чтобы ваше дело было одним из первых 2:)