Публикации по теме 'volatile'


Синхронизация потоков с volatile в Java
В Java ключевое слово volatile используется, чтобы пометить переменную как изменчивую, что означает, что она может быть изменена одновременно несколькими потоками. Вот пример использования ключевого слова volatile в Java: public class VolatileExample { private volatile int counter = 0; public void incrementCounter() { counter++; } public int getCounter() { return counter; } } В приведенном выше примере переменная counter помечена как volatile ,..

Вопросы по теме 'volatile'

С# изменчивый двойной
Поскольку только ссылочные типы и несколько примитивов (включая float, но не double, я не уверен, почему, я рад услышать, почему) могут быть объявлены как volatile, если я оберну двойное значение в класс, а затем объявлю его как volatile (как...
5360 просмотров
schedule 28.07.2023

Как узнать, согласен ли gcc с тем, что что-то нестабильно?
Рассмотрим следующее: volatile uint32_t i; Как узнать, относился ли gcc к переменной i или нет? Он будет объявлен как таковой, потому что никакой соседний код не собирается его изменять, а его изменение, вероятно, связано с каким-то...
4274 просмотров
schedule 23.02.2024

Использует ли Interlocked.CompareExchange барьер памяти?
Я читаю сообщение Джо Даффи о Volatile чтения и записи и своевременности , и я пытаюсь понять кое-что о последнем примере кода в сообщении: while (Interlocked.CompareExchange(ref m_state, 1, 0) != 0) ; m_state = 0; while...
7821 просмотров

Если более одного потока могут получить доступ к полю, должно ли оно быть помечено как изменчивое?
Чтение нескольких потоков ( общий проблемы параллелизма , изменчивое ключевое слово , модель памяти ). Меня смущают проблемы параллелизма в Java. У меня много полей, к которым обращаются более чем один поток. Следует ли мне просмотреть их и...
2695 просмотров
schedule 14.01.2023

Почему volatile не считается полезным в многопоточном программировании на C или C ++?
Как показано в этом ответе , который я недавно опубликовал, я, кажется, смущен о полезности (или отсутствии таковой) volatile в контекстах многопоточного программирования. Я понимаю следующее: каждый раз, когда переменная может быть изменена...
61231 просмотров
schedule 26.07.2023

Может быть volatile в определяемых пользователем типах, чтобы облегчить написание ориентированного на многопотоковое исполнение кода.
Я знаю, что в нескольких вопросах/ответах ранее было совершенно ясно, что volatile связано с видимым состоянием модели памяти С++, а не с многопоточностью. С другой стороны, в этой статье автор Александреску использует ключевое слово volatile...
2638 просмотров
schedule 29.09.2022

Как на самом деле работает volatile?
Пометка переменной как volatile в Java гарантирует, что каждый поток увидит последнее записанное в него значение вместо некоторого устаревшего значения. Мне было интересно, как это на самом деле достигается. Выдает ли JVM специальные инструкции,...
3002 просмотров
schedule 01.02.2023

Псевдоним строгого указателя: является ли доступ через «изменчивый» указатель/ссылку решением?
По пятам конкретной проблемы , самостоятельный ответ и комментарии к нему, я хотел бы понять, является ли это правильным решением, обходным путем/взломом или просто неправильным. В частности, я переписал код: T x = ...; if (*reinterpret_cast...
1482 просмотров

Определение изменчивого объекта класса
Можно ли использовать volatile для объектов класса? Нравиться: volatile Myclass className; Проблема в том, что он не компилируется, везде, где вызывается какой-либо метод, ошибка говорит: ошибка C2662: «функция»: невозможно преобразовать...
12483 просмотров
schedule 18.01.2023

Ключевое слово C++ volatile с глобальной общей переменной, к которой обращается функция
У меня есть многопоточное приложение C++. Теперь я знаю, что для глобальных общих переменных вы должны использовать volatile в некоторых случаях при проверке состояния переменной, иначе компилятор может предположить, что значение переменной никогда...
1752 просмотров
schedule 03.01.2023

Является ли это правило об использовании volatile строгим?
Я видел эту фразу: общее правило заключается в том, что если у вас есть переменные примитивного типа, которые должны совместно использоваться несколькими потоками, объявите эти переменные volatile из этой статьи и этого предложения:...
4750 просмотров
schedule 15.05.2022

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

Использование ключевого слова volatile с изменяемым объектом
Я понимаю, что в Java ключевое слово volatile обеспечивает видимость переменных. Вопрос в том, если переменная является ссылкой на изменяемый объект, обеспечивает ли volatile видимость членов внутри этого объекта? В приведенном ниже примере...
10859 просмотров
schedule 04.10.2022

Неустойчивый дорогой?
Прочитав The JSR-133 Cookbook for Compiler Writers о реализации volatile , особенно в разделе «Взаимодействие с атомарными инструкциями», я предполагаю, что для чтения изменчивой переменной без ее обновления требуется барьер LoadLoad или LoadStore....
23003 просмотров

Следует использовать пример кода, который может доказать изменчивое объявление.
В настоящее время я не могу понять, когда мы должны использовать volatile для объявления переменной. Я долго изучал и искал некоторые материалы об этом и знаю, что когда поле объявляется изменчивым, компилятор и среда выполнения получают...
6264 просмотров
schedule 08.03.2023

Методы в свойстве становятся изменчивыми методами при смешивании с конкретными классами в 2.9.0-1, но не в 2.8.1.
Я заметил это критическое (для меня, использующего его с OGNL) изменение в 2.9.0-1: Я обнаружил, что в версии 2.9 методы, объявленные в типаже, становятся изменчивыми при смешивании с классом: Пример в 2.9.0-1 import...
212 просмотров
schedule 30.03.2024

Поля, считываемые / записываемые несколькими потоками, взаимосвязанные и изменчивые
Здесь, на SO, довольно много вопросов о Interlocked и volatile , я понимаю и знаю концепции volatile (без переупорядочивания, всегда чтение из памяти и т. Д.), И я знаю, как работает Interlocked в том смысле, что он выполняет атомарная...
754 просмотров
schedule 31.07.2023

Действительно ли нам нужно ключевое слово VOLATILE в C#?
Вот код, который я пробовал на своей рабочей станции. class Program { public static volatile bool status = true; public static void Main() { Thread FirstStart = new Thread(threadrun); FirstStart.Start();...
479 просмотров
schedule 28.05.2024

Java: энергозависимый массив для публикации изменений данных
У меня есть сложная карта, которая не нуждается в блокировке для частого получения и нечастых изменений, потому что ключи однозначно определяют поведение элементов, на которые они ссылаются. То есть, если ключ один и тот же, структура, на которую...
238 просмотров
schedule 28.07.2022

Передача энергозависимого массива в strncpy
В моем ISR у меня есть буфер, который заполняется USART, поэтому я объявил буфер как volatile: volatile uint8_t RxBuffer1[BUFFER_LENGTH]; Хорошо, нет проблем. Я считаю, что это стандартная практика. Где-то в main() мне нужно скопировать...
3847 просмотров
schedule 30.08.2022