gpt4 book ai didi

.net - Akka.Net 和缓存一致性

转载 作者:行者123 更新时间:2023-12-04 20:34:07 24 4
gpt4 key购买 nike

我试图围绕 akka.net 并发如何处理缓存一致性。假设我有一个将某些状态存储为实例字段的 Actor,我知道一次只处理一条消息。但是每个消息可能由线程池中的不同线程处理,可能在不同的核心/套接字上。 akka.net 如何确保不同的线程看到对 state 字段所做的所有更改?

关于 akka https://www.lightbend.com/blog/akka-and-the-java-memory-model 的一些类似讨论,但我不确定缓存一致性问题是否得到正确回答(请参阅最后一条评论)。

最佳答案

在缓存一致性方面 - 参与者的状态一次只能在一个线程上读取(无论哪个线程正在处理参与者的邮箱),并且通常该参与者将在将线程让给另一个线程之前一次处理多达 30 条消息 Actor 。它类似于量子在普通 Windows/Linux 调度程序中的工作方式。

因此,您可以将参与者内存的更新视为事务性的——两个处理器无法同时访问参与者的内存,因为它是私有(private)的,并且在给定时间只能由单个线程访问。由于这种缓存一致性一开始就不是问题,因为参与者模型强制读取和写入状态的线性化历史。

关于.net - Akka.Net 和缓存一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182644/

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