multithreading - clojure 中用于并发的消息传递模型

标签 multithreading concurrency clojure programming-languages

我想知道是否可以将编程语言 Clojure 用于消息传递并发模型,即两个进程/线程之间没有共享内存区域。

我希望使用 Clojure 有几个原因,即我了解并喜欢 Common Lisp,并且我想要一种函数式编程语言。我不太了解 Clojure 或并发,但是来自 wikipedia Clojure 通过软件事务内存、代理系统和动态变量系统实现并发。

  1. Clojure 可以实现消息传递并发模型吗?
  2. 如果不是,还有什么其他语言

感谢您的帮助!

最佳答案

Can Clojure implement a message passing concurrency model?

当然可以。它已经为 Clojure 实现了。检查Pulsar项目。它看起来很有前途,并为黄金时段做好了准备。

当然,没有什么能阻止您使用 Akka.io因为它是一个 JVM 项目(通过使用 Clojure 的内置 Java 互操作)。但 Pulsar 是在考虑 Clojure 的情况下创建的。

what other languages?

在 Actors 模型方面,Erlang 是无可争议的冠军。

关于multithreading - clojure 中用于并发的消息传递模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22643780/

相关文章:

python - 线程在调用 Thread.start 之前开始运行

java - 在调用 Future.get() 之前中断线程

concurrency - 打印到标准输出会导致阻塞的 goroutine 运行?

mongodb - 如何使用 congomongo 的 fetch 查询嵌套文档?

clojure - 如何从clojars中取出jar?

c# - UI 在反序列化 JSON 时被阻止

java - 何时使用正确版本的单例线程安全实现?

scala - Specs2 - 不应在并发环境中使用单位规范样式

clojure - 使用 get 参数作为函数名称

c# - 未经授权的访问异常 : how to wait on input from user. Windows Phone c#