Java 7将向细颗粒并行化发展

原创|其它|编辑:郝浩|2009-04-20 09:16:54.000|阅读 336 次

概述:Java 7将向细颗粒并行化发展

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

作为最主流的编程语言之一,Java的开发团队不可能不了解多核芯片革命的重要性,因此他们正在努力工作,针对新的多核处理器可能带来的性能特性提 供新的并行框架。现在我们知道,JDK 7(Java Development Kit,Java开发工具包)将提供新的fork-join框架,以帮助Java开发者能够继续使用Java在多核战争中赢取他们的阵地。

我想,如果在这里引用一下达尔文的“物种起源”和他在进化论中的观点再合适不过了:“真实的情况是,大自然选择了最适合的品种,优胜劣汰,适者生存,这一过程被称为物竞天择。”

我敢肯定,为了在并行化的年代生存,开发者一定会选择最适合多核开发的编程语言,这一过程也该被称为物竞天择。不能够自我发展以支持多核编程的开发 语言将是不会有机会生存在这个新时代的。幸运的是,我们看到JDK 7已针对并行化提供了诸多改进,它能够诱惑足够的多核程序员成为它的拥趸。

Java从第一个版本开始就支持多线程。然而,在Java诞生时,多核处理器还远远没有问世。因此,旧的Java线程模型并没有在这方面做过多考 虑。旧模式在只有一个处理核心时能够创建响应性更强的应用,表现可以说非常优秀,但它确实没有为高并发级别做好准备。如今的多核心编程需要许多并行任务共 同运行,充分利用所有可用的核心,而在这种情况下旧模式显然已经落后了。

为此,JDK 5中加入了对粗颗粒并发的框架支持,使新模式能够适合于多处理器系统。而JDK 7中将进一步添加对细颗粒并行的支持,使用新的fork-join框架,给开发者提供了深入多核微处理器的可能性。

可以肯定地说,在多核革命中,Java将不断的进化以谋求生存。新的框架提供了根据任务工作的可能性,而并不需使用过多的线程。例如,在新提供的java.util.concurrent.forkjoin包中,JDK 7将提供以下有用的基类:
◆RecursiveAction:代表divide-and-conquer解决方法类
◆RecursiveTask:代表result-bearing任务
◆AsyncAction:与需要异步完成的任务协同工作
◆CyclicAction:与并行迭代任务协同工作

新的fork-join任务的设计目的为将工作量最小化,并提高计算密集型任务的性能。此外,比起旧版的线程编码,代码更加容易理解,开发者需要的同步时间会更少。

对于在多核CPU上运行的计算密集型任务,新的fork-join框架将会非常有用。

JDK 7还将提供许多其他功能,比如新的ParallelArray类等。然而,我还是更想把重点放在新的fork-join框架上。

Java正在不断进化中,因此,作为Java开发者也必须不断的提高自己,充分利用这些即将到来的功能。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:51CTO.com

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP