首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并发模型列表

并发模型列表
EN

Stack Overflow用户
提问于 2010-11-11 17:50:57
回答 11查看 13.9K关注 0票数 32

我想要一个很大的列表,这样我就可以参考这个想法。一些答案已经很有启发性了。

什么是并发模型?我听说过在没有共享内存的地方进行消息传递。Futures,它立即返回一个对象(这样它就不会阻塞),并允许你稍后在需要时取消引用原始函数,如果结果还没有准备好,就会阻塞它。我听说过协程,软件事务内存和随机其他。

我搜索了一个列表或维基,但没有找到任何好的(许多没有列出我上面提到的3个),许多结果给了我一个复杂的描述,解释了它是如何工作的,而不是它做了什么或者它是如何使用的。

什么是并发模型,对它们的简单描述是什么?每个答案一个。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-11-23 11:55:21

COM Threading (Concurrency) Model

  • Single-Threaded Apartments
  • Multi-Threaded Apartments
  • Mixed模型开发

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的

  • Actor model
    • Object-capability model

  • Ambient calculus
  • Calculus of Communicating Systems (CCS)
  • Communicating Sequential Processes (CSP)
  • π-calculus

  • Petri nets
  • Process calculi

票数 9
EN

Stack Overflow用户

发布于 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

票数 11
EN

Stack Overflow用户

发布于 2010-11-13 05:24:22

Futures

未来是(并发)计算的未确定结果的占位符。一旦计算得到结果,就会通过用结果值全局替换它来消除相关的未来。这种价值本身可能就是未来。

每当并发计算请求未来时,即试图访问其值,该计算将通过阻塞在未来自动同步,直到确定或失败。

期货有四种:

  • 并发期货代表并发计算的结果,
  • 惰性期货代表仅根据请求执行的计算结果,
  • 承诺的期货代表承诺稍后通过显式方式交付的值,
  • 失败的期货代表因异常而终止的计算结果。
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4153118

复制
相关文章

相似问题

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