Какое влияние на производительность оказывает совместное использование объектов между потоками?

Я знаю, что чтение из одного объекта в нескольких потоках безопасно в Java, пока объект не записывается. Но каковы последствия для производительности при выполнении этого вместо копирования данных по потоку?

Должны ли потоки ждать, пока другие закончат чтение памяти? Или данные копируются неявно (причина существования volatile )? Но как это повлияет на использование памяти всей JVM? И чем все это отличается, когда читаемый объект старше, чем потоки, которые его читают, а не создан за время своего существования?

5
задан Bart van Heukelom 1 July 2011 в 09:16
поделиться