哪个是理想的Clojure并发构造,用于维护要处理的数据队列?

Amo*_*kar 5 clojure

如果我想维护服务器端的图像帧队列,我将发送给客户端我应该使用哪种数据结构?

我正在尝试创建一个简单的应用程序,我将帧发送到服务器,然后服务器将它们推送到其他客户端.

我应该将此队列维护为原子还是ref?

Rör*_*örd 5

您可以使用其中一个队列类java.util.concurrent.轻松访问Java标准库是Clojure的所有优点之一,因此如果Java已经提供了可以完成工作的东西,那么您不必自己从Clojure提供的构建块构建所有内容.

我建议从BlockingQueue接口的实现中选择一些东西.

  • 我记得Rich Hickey在演讲中推荐这种方法. (3认同)
  • 在"Clojure Programming"一书中,他们展示了一个基于代理的并行程序的例子:它使用`LinkedBlockingQueue`来跟踪需要处理的工作.当代理处理任务时,某些任务会导致在队列上推送更多新任务. (2认同)