首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >并发计算的示例问题

并发计算的示例问题
EN

Stack Overflow用户
提问于 2010-08-18 21:54:38
回答 1查看 1.1K关注 0票数 7

当今使用的并发编程的范例和方法太多了。软件事务内存、参与者、共享状态并发、元组空间等等。

然而,我发现缺少的是一个有趣的并发测试问题库。一个著名的例子是“就餐哲学家问题”,这个问题既不够复杂,也不够激动人心,也不现实。然后有许多并行算法(矩阵乘法,渲染,通用嵌套数据并行),它们只需要分配工作,而不是真正的并发执行线程之间的通信。

那么,有没有人能给我指出一些有趣的问题,这些问题在交互式甚至分布式环境中需要真正的并发性,这些问题足够简单,可以用作并发范例的示例?理想情况下,我希望找到一组问题来作为并发范例的"lackmus-test“(或者突出它们的差异,因为每个范例都有它的优点和缺点)。

任何帮助都是非常感谢的:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-20 01:07:05

我之前考虑过这个问题,之前我自己也提出了一些并发编程范例:p

我当时得出的结论是,这样的测试集似乎并不是真正以独立于语言的方式存在的。虽然它的存在可能是有帮助的,但似乎有一些相当好的理由它不存在(据我所知)。

并发编程中的大部分焦点都倾向于数据并行性,以便将相同的操作并行地应用于相同数据集的不同部分。我认为你所说的任务级并行(即不同的任务并行执行,可能共享数据)实际上并没有做得太多。我想这是因为这有点难。但我认为这也有点困难,因为大多数问题都不适合这种并发。用并发原语描述分布式系统可能会有帮助,但这些系统往往是解耦的,这样就有一个协议(写的或暗示的)来调节它们的通信。人们倾向于不认为这些类型的系统是明显的“并发”编程情况,即使在正确的框架内看待它们(即,将“客户端”和“服务器”视为在某些点上与同步并行操作的代理)。

我认为你唯一能找到灵感来源的地方是在单独的实现中。Erlang,Occam (和Occam-pi),Alice,CML,Concurrent Haskell等都可能有很小的测试语料库,但问题和它们的实现都偏向于在特定语言中实现(因为它们显然是可以在该语言中实现的!)。也许你也可以看看从事multi-party session types工作的社区,以及各种process calculi,比如π演算、CCS和CSP,看看他们使用什么类型的系统作为示例模型。描述并发通信系统的标准语言不可知问题集的想法很吸引人,但我认为在这一点上有点难以捉摸。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3512818

复制
相关文章

相似问题

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