当前位置:  开发笔记 > 编程语言 > 正文

与参与者模型和锁相比,事务性存储器是什么

如何解决《与参与者模型和锁相比,事务性存储器是什么》经验,为你挑选了1个好方法。

与基于角色的同步和基于锁的同步相比,事务存储是什么?

据我了解,这是并发控制的另一种机制。还是与演员,事件,锁等完全不同?



1> 小智..:

事务性内存(TM)是一种无锁同步方法。在基于锁的同步机制中,一个线程获取锁并进入同步块,而其他线程等待直到锁可用。在TM中,线程不等待锁,而是继续每个线程,就好像锁可用一样。但是,为了确保执行的正确性,所有在同步块内部进行的存储器访问都是推测性进行的。一旦执行到达同步区域的末尾,线程就会相互通信并共享读取和写入的内存位置(在TM术语中称为读取集和写入集)。如果一个线程读取了另一个线程推测性写入的内存位置,则发生冲突并且将解决冲突。到底,如果两个或多个线程没有冲突,则它们都可以继续并且将使用推测性写入来更新内存。尽管实现过程很复杂,但是通过编写类似于粗粒度锁的程序(只需指定事务的开始和结束),您可以获得细粒度锁(基于内存位置)的优势。

根据您如何进行数据版本控制(原始数据与推测性数据)和冲突解决方案(急切-随便做,懒惰-最后做),有数十个TM系统。以及它们在(硬件,软件,HyBrid)中实现的平台。

我对基于actor的并发不是很好。据我所知,它似乎是通过向其他演员发送消息来工作的,每个演员都按要求完成工作,并在需要时创建更多演员。因此,我认为从概念上讲,这类似于分而治之的风格编程,即动态创建工作并将其传递给可用的演员。与函数编程类似,这种类型的范例与需要同步的传统共享内存样式正交。因此,我猜想,基于行为者的模型不需要锁或无锁同步,因为它们本质上是并行的。

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有