Я пытаюсь понять модель памяти Java и потоки. Как я понял, каждый поток имеет локальную копию "основной" памяти. Поэтому, если один поток пытается изменить переменную int
, например, некоторого объекта, он кэширует переменную int
, и если она ее изменяет, другой поток может не увидеть изменения. Но что, если потоки кэшируют какой-то объект вместо int? Какие потоки кэшируют его в этом случае? Если поток кэширует ссылку на объект, любое изменение состояния объекта не видимо для других потоков? Почему?
Заранее благодарю