@Zulkund

Объясните смысл идентификатора volatile в Java?

Господа, не могу понять смысл идентификатора volatile, объясните простыми словами пожалуйста. Непонятно следующее, если несколько потоков используют 1 объект и измененные данные часто хранятся в кэше, то не проще будет присвоить объекту модификатор static? Заранее спасибо.
  • Вопрос задан
  • 495 просмотров
Решения вопроса 1
@sirs
то не проще будет присвоить объекту модификатор static?

Нет, не проще. static поле принадлежит самому классу (объекту класс), а не объектам. Как вы будете его модифицировать?
volatile позволяет увидеть изменения переменной во всех потоках сразу, однако не стоит забывать, что это верно только для атомарных операций!

Если же вы ищете конкретное решение конкретной проблемы - посмотрите в сторону AtomicInteger, AtomicLong и т.д. если вам нужно что-то похожее на счетчики, в сторону ReentrantLock если у вас какой-то разделяемый ресурс, и в сторону ConcurrentHashMap если у вас коллекция, с которой должно работать множество потоков...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы