首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka actor文档中的“现代计算机架构上共享内存的幻觉”是什么意思?

Akka actor文档中的“现代计算机架构上共享内存的幻觉”是什么意思?
EN

Stack Overflow用户
提问于 2019-09-29 01:56:50
回答 1查看 121关注 0票数 1

我是从演员模型开始的,在理解背后的概念时有一些问题,你能用一个例子简单地解释一下吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-29 06:42:48

首先,让我们弄清楚你引用的是什么。您引用了opening documentation的内容,其中讨论了为什么需要新的编程模型。我提到这一点是因为这些都是非常计算机科学的理论,与学习API没有直接关系。总体而言,我认为这是一个相对次要的问题。

但是,文档的这一段已经给出了几个例子。该段的根本观点是,并发在现代系统中本质上是困难的,并且传统的并发API通常会创建具有意外性能后果的抽象。

具体地说,该段讨论了即使内存是通过并发API“共享”的,现代CPU架构的现实意味着并不是所有的访问都是平等的。如果线程0创建了一段数据,并且线程1使用了它,那么CPU体系结构最终会使线程0上的数据无效,并将高速缓存线传送到线程1。即,即使内存被标记为“共享”,每次不同的线程访问该内存时,实际上也会有显著的性能损失。“共享”内存模型是一种错觉,因为CPU需要维护各种缓存,这些缓存导致内存不是真正被共享,而是来回传递(以巨大的成本)。

这只是开场理由中的一个小问题,但它带来了Actor模型提供的并发性的一些好处。因为参与者独占地访问其状态,不仅API更简单(因为您不必担心并发性),物理CPU也不必担心并发性。这样,您不仅不必担心锁,而且CPU也不必担心锁:它将能够访问内存,而不必在物理核心/CPU之间来回传递缓存线。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58148964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档