Публикации по теме '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 просмотров
schedule
15.03.2023
Если более одного потока могут получить доступ к полю, должно ли оно быть помечено как изменчивое?
Чтение нескольких потоков ( общий проблемы параллелизма , изменчивое ключевое слово , модель памяти ). Меня смущают проблемы параллелизма в 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 просмотров
schedule
17.05.2023
Определение изменчивого объекта класса
Можно ли использовать 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 просмотров
schedule
05.10.2023
Использование ключевого слова volatile с изменяемым объектом
Я понимаю, что в Java ключевое слово volatile обеспечивает видимость переменных. Вопрос в том, если переменная является ссылкой на изменяемый объект, обеспечивает ли volatile видимость членов внутри этого объекта?
В приведенном ниже примере...
10859 просмотров
schedule
04.10.2022
Неустойчивый дорогой?
Прочитав The JSR-133 Cookbook for Compiler Writers о реализации volatile , особенно в разделе «Взаимодействие с атомарными инструкциями», я предполагаю, что для чтения изменчивой переменной без ее обновления требуется барьер LoadLoad или LoadStore....
23003 просмотров
schedule
20.11.2022
Следует использовать пример кода, который может доказать изменчивое объявление.
В настоящее время я не могу понять, когда мы должны использовать 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