首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用非函数式语言编写函数式程序

用非函数式语言编写函数式程序
EN

Stack Overflow用户
提问于 2009-05-11 09:53:12
回答 5查看 720关注 0票数 5

假设我用Java编写了一个使用不可变数据结构的程序。即使它不是函数式语言,它也应该能够并行执行。如何确保我的程序正在使用我的处理器的所有内核执行?计算机如何决定哪些代码可以并行运行?

附注:我问这个问题的目的并不是要找出如何并行化java程序。但是要知道计算机是如何并行化代码的。它能在用非函数式语言编写的函数式程序中做到吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-05-11 12:25:42

我不认为你可以“强迫”JVM并行化你的程序,但是让一个单独的线程执行每个“任务”,如果你可以这样分解你的程序,在大多数情况下可能会做到这一点?然而,并行性仍然不能得到保证。

票数 3
EN

Stack Overflow用户

发布于 2009-05-11 09:58:20

Java程序是通过线程并行化的。计算机无法神奇地计算出如何使用命令式语言(如Java )将应用程序的各个部分分布到所有核心。只有像Erlang或Haskell这样的函数式语言才能做到这一点。请阅读有关Java线程的内容。

票数 8
EN

Stack Overflow用户

发布于 2009-05-11 11:47:36

我不知道automatic parallelization JVM。它们确实适用于其他语言,如FORTRAN。

您可能会发现为JDK7安排的JSR166y fork-join framework很有趣。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/847430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档