相关疑难解决方法(0)

共享内存与消息传递如何处理大型数据结构?

在研究Go和Erlang的并发方法时,我注意到它们都依赖于消息传递.

这种方法显然减轻了对复杂锁的需求,因为没有共享状态.

但是,请考虑许多客户端希望对内存中的单个大型数据结构进行并行只读访问的情况 - 如后缀数组.

我的问题:

  • 使用共享状态会比消息传递更快并且使用更少的内存,因为锁是大多数不必要的,因为数据是只读的,只需要存在于一个位置?

  • 如何在消息传递上下文中处理此问题?是否存在可以访问数据结构的单个进程,客户端只需要从中顺序请求数据?或者,如果可能的话,数据是否会被分块以创建几个保存块的进程?

  • 鉴于现代CPU和内存的架构,两种解决方案之间是否存在很大差异 - 即,可以通过多个内核并行读取共享内存 - 这意味着没有硬件瓶颈会使两个实现大致执行相同的操作?

memory parallel-processing concurrency erlang go

57
推荐指数
6
解决办法
8759
查看次数

标签 统计

concurrency ×1

erlang ×1

go ×1

memory ×1

parallel-processing ×1