Должны ли свойства моих актеров Scala быть помечены @volatile?
В Scala, если у меня есть простой класс следующим образом:
<code>val calc = actor { var sum = 0 loop { react { case Add(n) => sum += n case RequestSum => sender ! sum } } } </code>
Если мое полеsum
быть отмеченным@volatile
? Пока актерlogically single-threaded (то есть сообщения обрабатываются последовательно), отдельные реакции могут происходить в отдельных потоках и, следовательно,state
переменная может быть изменена в одном потоке, а затем прочитана из другого.