Jon*_*rop 5 parallel-processing functional-programming
OCaml GC强制执行全局锁定,以防止mutators(线程)并行运行,尽管它们可以并发运行(交错).我相信SML/NJ和MLton也是如此,但不是PolyML,GHC,F#,Clojure和Scala.
还有哪些其他功能语言实现允许线程并行运行?
Nor*_*sey 11
那里有很多很好的实现.目前,Haskell人似乎获得了最好的结果(参见Simon Marlow和其他人的ICFP 2009论文以及Donnie Jones和其他人的Haskell Symposium 2009论文).Erlang非常落后,特别是如果你想分发.
在六到十二个月内,答案可能已经改变:-)
Erlang实现了自己的流程和流程计划,并允许数千,数万甚至数百万个Erlang流程(在单个操作系统流程中).
在SMP和多核机器中,Erlang虚拟机将为其进程调度程序和进程队列分配尽可能多的操作系统线程和操作系统进程,以最大限度地利用硬件体系结构中的底层并发操作.
当然,暴露于应用程序的并发范例仍然是相同的.
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |