Пример кода из LMAX Disruptor "Начало работы" ...Должны ли поля классов в событии LMAX Disruptor быть неустойчивыми?
public class LongEvent
{
private long value;
public void set(long value)
{
this.value = value;
}
}
Ref: https://github.com/LMAX-Exchange/disruptor/wiki/Getting-Started
Почему не private long value
объявлен volatile
?
Я спрашиваю, потому что, неявный для шаблона Disruptor, данные распределяются между потоками (производитель -> потребитель).
Мое предположение: Существует уже (по крайней мере) один забор памяти между производителем и потребительскими потоками.
Разумное предположение, что было бы интересно, если бы Distruptor мог быть реализован без каких-либо заборов. –