OCaml GC强加了一个全局锁,该全局锁阻止修改器(线程)并行运行,尽管它们可以并发(交错)运行。我相信这同样适用于SML/NJ和MLton,但不适用于PolyML、GHC、F#、Clojure和Scala。
还有哪些函数式语言实现允许线程并行运行?
发布于 2009-07-12 21:46:29
我很高兴地告诉你,你是对的,基于CLR的F#根本不会受到这种限制,相反,它受益于多线程的特定功能,包括async workflows、the mailboxprocessor和即将推出的精彩的(.NET 4.0)任务并行库。
发布于 2009-07-13 00:31:55
有很多很好的实现。目前,Haskell人员似乎获得了最好的结果(参见ICFP 2009 paper by Simon Marlow and others和Haskell Symposium 2009 paper by Donnie Jones and others)。Erlang紧随其后,特别是如果你想进行分布式的话。
在6到12个月内,答案可能会发生变化:-)
发布于 2009-07-12 21:35:43
通过Data Parallel Haskell实现的Haskell supports parallel threads
https://stackoverflow.com/questions/1116974
复制相似问题