phi*_*eas 1 actor-model akka reactive-streams
我从演员模型开始,在理解这个概念时遇到了一些问题,请用示例简单地解释一下。
首先,让我们弄清楚您要引用的内容。您引用了开放文档,其中讨论了为什么需要新的编程模型。我之所以这么说是因为这完全是计算机科学理论,与学习API没有直接关系。总的来说,我认为这是一个相对较小的观点。
但是,文档的该段已经给出了几个示例。该段的要点从根本上讲是,并发在现代系统上本来就很难,而传统的并发API通常会创建具有意外性能后果的抽象。
具体地说,该段讨论了即使通过并发API“共享”内存,现代CPU体系结构的实际情况也意味着并非所有访问都是平等的。如果线程0创建了一条数据,线程1使用了该数据,则CPU体系结构最终将使线程0上的数据无效,并将高速缓存行传送到线程1。也就是说,即使内存被标记为实际上,每当一个不同的线程访问该内存时,“共享”实际上都会有很大的性能损失。“共享”内存模型是一种错觉,因为CPU需要维护各种高速缓存,这些高速缓存导致内存不是真正共享的,而是来回传递的(成本很高)。
这只是开放理由的次要点,但是它带来了Actor模型提供的并发性的一些好处。由于参与者可以独享其状态,因此API不仅更简单(因为您不必担心并发性),而且物理CPU也不必担心该并发性。这不仅使您不必担心锁定,而且CPU也不必担心锁定:它将能够访问内存,而不必在物理内核/ CPU之间来回传递高速缓存行。
归档时间: |
|
查看次数: |
41 次 |
最近记录: |