首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure的core.async与简街的OCaml核心异步类似吗?

Clojure的core.async与简街的OCaml核心异步类似吗?
EN

Stack Overflow用户
提问于 2013-10-14 21:34:36
回答 1查看 1K关注 0票数 8

在这个博客帖子中,作者写道:

然而,格勒曼建立在简街的核心和异步库之上,简街是OCaml最大的工业用户之一。异步允许一元模拟并发,避免了其他事件驱动工具的大量回调问题,但它是相当单一的。

在J用于核心异步的ane街道文档页上,他们将其描述为:

特别是,我们认为异步可以更好地控制程序的并发性,从而更容易对可能的竞争条件进行推理。

我的问题是- core.async在Clojure中和OCaml中的核心异步是否有相似之处?我之所以这样问,是因为“为了避免回调头疼而设计的并发性”听起来非常类似于Clojure中的core.async应用程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-14 22:21:55

我找不到主要的相似之处。Clojure的core.async的概念似乎主要基于Go的并发模型--许多名称是相同的,比如通信通道,甚至是异步执行代码的go宏,比如语言本身命名的Go关键字。

另一方面,简街异步的概念在介绍性文件的这句话中作了总结

简而言之,其思想是使用非抢占的用户级线程和一流的阻塞操作,并在类型系统中表示阻塞。

它使用特殊类型的Deferred.t来通信异步计算的结果,这比与通道更相似。它还完全避开OS线程并使用用户线程,而core.async确实使用OS线程(至少在可用的情况下)。

编辑:在进一步的研究中,有一个明显的相似之处,那就是两个库都专注于提供在不绑定OS线程的情况下组合多个阻塞操作的方法。而且异步也通过Deferred.t模块提供(除了Pipe )通道。

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

https://stackoverflow.com/questions/19369689

复制
相关文章

相似问题

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