多核/并发编程和.NET / Java

我经常听说其他语言被推广为更适合多核/并发编程,例如Clojure,
Scala,Erlang等等但是我有点担心为什么我需要担心多个内核,
Java / .NET VM是否应该自动处理,如果没有,它背后的原因是什么?

是因为提到的那些语言是功能性的还是比非功能语言有一些内在的优势?

最佳答案 您需要关心的原因是处理器通常说没有更快.相反,更多的它们以额外的核心形式添加到计算机中.为了使程序能够利用额外的处理器,它通常必须使用多个线程来执行此操作. Java和大多数其他语言不会自动在程序中使用更多线程.这是您需要手动执行的操作.

有些人喜欢像Scala,Erlang和F#这样的函数式语言,而不喜欢多线程编程.功能语言默认情况下至少是不可变的,因此理论上在多线程情况下更容易使用.

这是一篇关于这个主题的非常好的文章

> The Free Lunch is Over

点赞