Qua*_*han 54 concurrency erlang clojure
我们将使用Clojure编写并发程序,该程序将从大量传入邮件中提取关键字,这些邮件将与数据库进行交叉检查.
我的一个队友建议使用Erlang编写这个程序.
在这里,我想要注意一些我对函数式编程不熟悉的东西,所以我有点怀疑clojure是编写这个程序的好选择,还是Erlang更适合.
mik*_*era 62
你真的是指并发还是分发?
如果你的意思是并发(多线程,多核等),那么我会说Clojure是自然的解决方案.
如果你的意思是分布式(即许多不同的机器通过网络共享工作,它们作为独立的进程有效运行),那么我会说Erlang是更自然的解决方案:
从长远来看,我希望Clojure开发一个与Erlang匹配的分布式计算框架 - 那么你就可以拥有两全其美!
nim*_*odm 48
这两种语言和运行时采用不同的并发方法:
Erlang结构编程了许多轻量级进程之间的通信.在这种情况下,您可能会有一个主进程将作业和数据发送给许多工作人员和更多进程来处理结果数据.
Clojure支持一种设计,其中多个线程使用公共数据结构共享数据和状态.这听起来特别适合于许多线程访问相同数据(只读)并且共享很少可变状态的情况.
您需要分析您的应用程序以确定最适合您的模型.这可能还取决于您使用的外部工具 - 例如,数据库处理并发请求的能力.
另一个实际考虑因素是clojure在JVM上运行,其中有许多开源库可用.
Clojure是在Java JVM上运行的Lisp.Erlang的设计从一开始就具有高度容错性和并发性.
我相信这项任务对任何一种语言和其他语言都是可行的.您的经验将取决于您对问题的理解程度以及您对语言的了解程度.如果你是两个新手,我会说无论你选择哪一个,问题都将是挑战.
你有没有想过像Lucene/Solr这样的东西?它是索引和搜索文档的绝佳软件.我不知道"交叉检查"对您的上下文意味着什么,但这可能是一个很好的解决方案.
归档时间: |
|
查看次数: |
15550 次 |
最近记录: |