gpt4 book ai didi

actor - 我的 Akka Actor 的属性是否应该标记为 @volatile?

转载 作者:行者123 更新时间:2023-12-03 15:47:32 26 4
gpt4 key购买 nike

这个问题看起来类似于 Should my Scala actors' properties be marked @volatile?但不确定答案是否相同。

例如,如果配置了 fork-join 调度程序并且参与者的状态没有被 @volatile 标记,是否可以保证参与者的状态将通过缓存层次结构从一个内核(或处理器)传播到另一个内核(或处理器),如果 fork/join 工作线程在不同的内核(或处理器)上运行?

附言在 JSR133 之后,只有对任何 volatile 变量进行一次写入/读取操作才能将缓存刷新到主内存并查看该线程在其他内核(或处理器)上运行的其他线程上的所有先前非 volatile 写入,这是否正确?如果是,那么可以回答,因为扫描工作队列会从/向 FJ 任务的 volatile 变量进行一些读取和写入。

最佳答案

不,你不应该把 volatile 放在你的 Actor 领域。为什么?

if an actor makes changes to its internal state while processing a message, and accesses that state while processing another message moments later. It is important to realize that with the actor model you don’t get any guarantee that the same thread will be executing the same actor for different messages.



都在这里: http://doc.akka.io/docs/akka/2.0/general/jmm.html

关于您的 PS,您需要读取/写入相同的 volatile 字段以获得发生前保证。阅读“ volatile 捎带”

关于actor - 我的 Akka Actor 的属性是否应该标记为 @volatile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10165603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com