Вопросы с тегом «volatile»

Volatile - это квалификатор, используемый для определения области хранения данных (объекта, поля, переменной, параметра), которая «может изменяться сама по себе», таким образом запрещая некоторые оптимизации генератора кода. В некоторых, но не во всех языках, которые распознают этот квалификатор, доступ к таким данным является потокобезопасным.

22
Какое ключевое слово volatile полезно для
На работе сегодня я наткнулся на volatileключевое слово в Java. Не очень знакомый с этим, я нашел это объяснение: Теория и практика Java: управление волатильностью Учитывая детали, в которых эта статья объясняет данное ключевое слово, вы когда-нибудь использовали его или могли когда-нибудь увидеть случай, когда вы могли бы использовать это …

9
Летучий против Блокированный против блокировки
Допустим, у класса есть public int counterполе, доступ к которому осуществляется несколькими потоками. Это intтолько увеличивается или уменьшается. Чтобы увеличить это поле, какой подход следует использовать и почему? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);, Измените модификатор доступа counterна public volatile. Теперь, когда я обнаружил volatile, я удалил много lockутверждений и использование Interlocked. …


7
В чем разница между атомарным / энергозависимым / синхронизированным?
Как атомарные / энергозависимые / синхронизированные работают внутри? В чем разница между следующими блоками кода? Код 1 private int counter; public int getNextUniqueIndex() { return counter++; } Код 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Код 3 private volatile int counter; public int getNextUniqueIndex() { return …

8
Volatile против статики в Java
Правильно ли говорить, что это staticозначает одну копию значения для всех объектов и volatileозначает одну копию значения для всех потоков? В любом случае, staticзначение переменной также будет одним значением для всех потоков, тогда зачем нам идти volatile?


4
Разница между изменчивым и синхронизированным в Java
Меня интересует разница между объявлением переменной как volatile и всегда доступ к переменной в synchronized(this)блоке в Java? По этой статье http://www.javamex.com/tutorials/synchronization_volatile.shtml многое можно сказать и есть много различий, но также есть и некоторые сходства. Я особенно заинтересован в этой части информации: ... доступ к энергозависимой переменной никогда не может блокировать: …


9
Почему volatile не считается полезным в многопоточном программировании на C или C ++?
Как показано в этом ответе, который я недавно опубликовал, мне кажется, что я не совсем понимаю полезность (или ее отсутствие) volatileмногопоточного программирования. Насколько я понимаю, в любой момент, когда переменная может быть изменена вне потока контроля фрагмента кода, обращающегося к ней, эта переменная должна быть объявлена volatile. Обработчики сигналов, регистры …

5
Когда использовать volatile с многопоточностью?
Если есть два потока, обращающихся к глобальной переменной, то во многих руководствах говорится, что переменная должна быть изменчивой, чтобы компилятор не кэшировал переменную в регистре и, таким образом, не обновлялся правильно. Однако два потока, оба обращающиеся к общей переменной, - это то, что требует защиты через мьютекс, не так ли? …

8
Для чего используется ключевое слово «volatile»?
На этот вопрос есть ответы на Stack Overflow на русском : Ключевое слово volatile в Java Я читал несколько статей о volatileключевом слове, но не мог понять, как правильно его использовать. Подскажите, пожалуйста, для чего его использовать в C # и Java?
130 c#  java  volatile 

4
Неустойчивый дорогой?
Прочитав «Поваренную книгу JSR-133 для разработчиков компиляторов» о реализации volatile, особенно в разделе «Взаимодействие с атомарными командами», я предполагаю, что для чтения изменчивой переменной без ее обновления требуется барьер LoadLoad или LoadStore. Далее по странице я вижу, что LoadLoad и LoadStore фактически не работают на процессорах X86. Означает ли это, …

6
Иллюстрация использования ключевого слова volatile в C #
Я хотел бы написать небольшую программу, которая наглядно иллюстрирует поведение volatileключевого слова. В идеале это должна быть программа, которая выполняет одновременный доступ к энергонезависимому статическому полю и из-за этого ведет себя некорректно. Добавление ключевого слова volatile в ту же программу должно решить проблему. Этого мне не удалось достичь. Даже несколько …
88 c#  .net  volatile 

13
Вводит ли ключевое слово volatile в C ++ забор памяти?
Я это понимаю volatile информирует компилятор о том, что значение может быть изменено, но должен ли компилятор для выполнения этой функции вводить забор памяти, чтобы заставить его работать? Насколько я понимаю, последовательность операций с изменчивыми объектами не может быть переупорядочена и должна быть сохранена. Похоже, это подразумевает, что некоторые ограждения …

6
изменчивый и изменчивый в C ++
У меня вопрос о разнице между изменчивым и изменчивым. Я заметил, что оба значения означают, что это можно изменить. Что еще? Это одно и то же? Какая разница? Где они применимы? Почему предлагаются две идеи? Как их использовать по-другому? Большое спасибо.
85 c++  volatile  mutable 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.