我想要一个很大的列表,这样我就可以参考这个想法。一些答案已经很有启发性了。
什么是并发模型?我听说过在没有共享内存的地方进行消息传递。Futures,它立即返回一个对象(这样它就不会阻塞),并允许你稍后在需要时取消引用原始函数,如果结果还没有准备好,就会阻塞它。我听说过协程,软件事务内存和随机其他。
我搜索了一个列表或维基,但没有找到任何好的(许多没有列出我上面提到的3个),许多结果给了我一个复杂的描述,解释了它是如何工作的,而不是它做了什么或者它是如何使用的。
什么是并发模型,对它们的简单描述是什么?每个答案一个。
发布于 2010-11-23 11:55:21
COM Threading (Concurrency) Model
的
COM对象可以在进程的多个线程中使用。术语“"*Multi-threaded Single- threaded Apartmen*t”(Single-threaded Apartmen*t)和“MTA”用于创建概念框架,用于描述对象和线程之间的关系、对象之间的并发关系、将方法调用传递到对象的手段以及在线程之间传递接口指针的规则。组件及其客户端在COM目前支持的以下两种单元模型之间进行选择:
单线程单元模型(STA):进程中的一个或多个线程使用COM,对COM对象的调用由COM同步。接口在线程之间进行封送处理。单线程单元模型的一种退化情况称为单线程模型,其中给定进程中只有一个线程使用COM。以前的Microsoft信息和文档有时将STA模型简称为“公寓模型”。多线程单元模型( MTA ):一个或多个线程使用COM,与MTA关联的所有线程直接调用与MTA关联的COM对象,而无需在调用方和对象之间插入任何系统代码。由于多个并发客户端可能或多或少地同时(在多处理器系统上同时)调用对象,因此对象必须自己同步其内部状态。接口不会在线程之间进行封送处理。以前的Microsoft信息和文档有时将此模型称为“自由线程模型”。STA模型和MTA模型可以在同一过程中使用。这有时被称为“混合模型”过程。
Other models according to Wikipedia
有几种并发计算模型,可以用来理解和分析并发系统。这些模型包括:
用于security的
等
发布于 2010-11-23 02:52:11
Actor Model
我听说过在没有共享内存的地方进行消息传递。
是关于Erlang风格的演员吗?
Scala在它的Actors框架中使用了这个想法(因此,在Scala中,它不是语言的一部分,只是一个库),它看起来非常性感!
简而言之,Actor是完全没有共享数据的对象,但可以使用异步消息进行交互。actor可以位于一个或不同的主机上,并使用有趣的错误处理策略(当错误发生时-actor就死了)。
您应该在Erlang和Scala文档中阅读更多关于这方面的内容,它的方法非常简单和渐进!
第3、17、17.11章:
http://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaByExample.pdf https://en.wikipedia.org/wiki/Actor_model
发布于 2010-11-13 05:24:22
Futures
未来是(并发)计算的未确定结果的占位符。一旦计算得到结果,就会通过用结果值全局替换它来消除相关的未来。这种价值本身可能就是未来。
每当并发计算请求未来时,即试图访问其值,该计算将通过阻塞在未来自动同步,直到确定或失败。
期货有四种:
https://stackoverflow.com/questions/4153118
复制相似问题