假设我想在Haskell中编写服务器.具有高并发性和简单处理的那种.对故障具有鲁棒性并提供高可用性的那种.Erlang将会有所帮助.
什么是一套好的工具,无论是框架还是一组基元,从哪里开始?
这正是Haskell擅长的.它具有出色的多核并行支持,因此当您使用更多线程时,您可以轻松利用额外的核心.但请记住,Haskell的目标是在多核上有很好的表现,Erlang有点不同,更强调分布式系统,而不是原始性能(例如参见基准游戏,http://benchmarksgame.alioth.debian.org/u64q/compare. php?lang = ghc&lang2 = hipe Haskell的速度几乎总是快得多,内存也少得多.
现在,开始:
您可以从Real World Haskell中的示例开始,了解forkIO和Haskell的轻量级线程,http://book.realworldhaskell.org/read/concurrent-and-multicore-programming.html
GHC关于并发工具的文档,http://haskell.org/haskellwiki/GHC/Concurrency
要查看大规模,可扩展的网络代码的库是事件库:http://github.com/tibbe/event,这使得使用epoll作为接受来自网络的事件的方法变得容易.这是一个简单的例子:http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/
有关回归基础知识,请参阅Simon Marlow关于构建并发Web服务器的教程:http://www.haskell.org/~simonmar/bib/webserverjfp_abstract.html
你会发现这个任务相对简单,有趣!