37得票1回答
我能否使用http-kit和core.async创建完全非阻塞的后端应用程序?

我想知道是否可能使用http-kit组合一个完全非阻塞的Clojure后端Web应用程序。 (实际上,任何兼容Ring的http服务器都可以,我提到http-kit是因为它声称具有事件驱动的、非阻塞模型)。 编辑:简述 这个问题是我对非阻塞/异步/事件驱动系统本质的一些误解的症状。如...

10得票2回答
核心异步和一万个进程用于动画——在这种情况下的实际好处是什么?

我们知道 - core.async 使用 CSP,类似于go-lang中的goroutines。现在对于像select和alt这样的场景,这非常有意义。 David Nolen在Clojure中展示了一个惊人的演示,展示了core.async在ClojureScript中的动画工作。 然而...

8得票3回答
Clojure core.async通道如何清理?

我第一次接触Clojure core.async,并正在浏览Rich Hickey的这个优秀演示文稿:http://www.infoq.com/presentations/clojure-core-async 我有一个问题,关于他在演示文稿末尾展示的例子: 根据Rich的说法,这个例子基本...

12得票1回答
CSP是否是在Scala中替代Actor模型的选择?

在1978年Hoare的一篇论文中,我们有了一个名为通信顺序进程(Communicating Sequential Processes)的想法。这被Go, Occam以及Clojure中的core.async所使用。 在Scala中,是否可以将CSP作为Actor Model的替代方案?(我...

11得票1回答
当不再使用Clojure core.async通道时,是否应该关闭它们?

关闭方法(至少在Java世界中)是一种好公民的行为,当您完成使用相关资源时,您需要调用它。不知何故,我开始将同样的行为应用于core.async库中的close!函数。据我所知,这些通道与任何IO都没有关联,因此我不确定是否有必要调用close!。在本地范围内,将通道留给垃圾回收而不关闭它们是...

7得票1回答
Clojure核心异步put!与go块的比较

我读过这篇关于核心异步的好文章: http://www.core-async.info/reference/primitives 我理解: 1. put! 是异步的并可以接受回调。在简单场景下运作良好,但可能会陷入回调地狱。 2. go 可以解决回调地狱问题,并允许使用同步方式编写异步代码...

8得票1回答
Clojure的core.async和Jane Street的OCaml Core Async类似吗?

在这篇博客文章中,作者写道: 然而,Grenchman是建立在Jane Street的Core和Async库之上的,Jane Street是OCaml最大的产业用户之一。Async允许使用单子伪并发,避免了其他事件驱动工具中的大量回调困扰,但它相当庞大。 在Jane Street的Co...

14得票4回答
何时在Clojure中使用core.async?

什么情况下应该使用Clojure的core.async库,需要哪种类型的应用程序使用这种异步编程方式? Clojure提供了4种基本的可变模型,如refs、agents、atoms和thread locals/vars。这些可变引用是否可以以任何方式提供core.async提供的便利性呢? ...

8得票2回答
core.async能否使用序列实现其函数?

Rich Hickey在Strange Loop的传输器演示中告诉我们,Clojure 1.6中有两个map的实现,一个是在clojure.core中用于序列,另一个是在core.async中用于通道。 现在我们知道,在1.7中,有传输器,当给定函数而不是集合时,像map和filter这...

9得票2回答
使用core.async等待n个通道

同样的,alt!等待n个通道中的一个获得值,我正在寻找等待所有n个通道都获得值的惯用方法。 我需要这个是因为我"spawn"了n个go块来处理异步任务,并且我想知道它们何时完成。我相信有一种非常优美的方法可以实现这一点。