阅读更多

14顶
0踩

编程语言

Henrik Engström【注1】却不这么认为!在他最近发表的blog,他强调“新的编程语言在对待多核的问题上,必须内置对多核的支持而不是增加一些像API这样的特性就能搞定的”。

Java早期的时候,我们哪里会知道Java编程模型会受如今汹涌澎湃的并发与多核编程影响。但随着JVM本身的不断进化,支持了很多语言,比如说Scala,可以做为并发编程的选择。如果提升应用程序的性能确实是个问题的话,那么也许Henrik Engström是对的,他主张I/O和内存管理会是真正的瓶颈,而不是你多加上几个处理器就可以解决的。他引用了Brian Goetz【注2】的文章《Java理论与实践:应用fork-join框架》,里面谈到了即将加入到Java7java.uti.concurrent包里的新框架——fork-join

 

“服务器应用程序通常会运行比可用的处理器数量多很多的并发线程或请求。这是因为在大多数服务器应用程序中,对请求的处理包含大量 I/O,这些 I/O 不会占用太多的处理器(所有网络服务器应用程序都会处理许多的套接字 I/O,因为请求是通过套接字接收的;也会处理大量磁盘(或数据库)I/O)。如果每个任务的 90% 的时间用来等待 I/O 完成,您将需要 10 倍于处理器数量的并发任务,才能充分利用所有的处理器。随着处理器数量增加,可能没有足够的并发请求保持所有处理器处于繁忙状态。但是,仍有可能使用并行性来改进另一种性能度量:用户等待获取响应的时间。”

 

 

这其实回避了问题的实质,我们想知道如何将所有新加入的处理器为我所用,做为多核革命?

 

而与此同时Daniel Lemire【注3】发表《计算机编程的多核革命还无法到来》对多核编程持否定态度。实际上他强调的是对大多数大型应用程序来说,最大的性能瓶颈实际上在数据层,而且,很多性能难题是可以通过框架(比如说MapReduceHadoop)和存储分区解决的。

 

总之,Java7勇敢的迈向由多核革命所引导的新的“并行”领域。同时,随着MicrosoftIntel在这方面的投资(最近两家公司宣布共投资 2亿美元于并行计算.),你会发现汹涌的潮汐即将淹地平线(暗指多核革命的到来)。

 

 

【注1

Henrik Engström1997年开始一直从事专业软件开发,精通OOP,设计模式,Java SE/EE,应用服务器和SOA,精通各个n-层架构。对Jboss,Weblogic,Websphere服务器有非常深刻的理解。

 

【注2

 

Brian Goetz 作为一名专业软件开发人员已经 20 年了。他是 Sun Microsystems 的高级工程师,并且效力于多个 JCP 专家组。Brian 的著作 Java Concurrency In Practice 2006 5 月由 Addison-Wesley 出版。请参阅 Brian 在流行的业界出版物上 已发表和即将发表的文章

 

 

【注3

加拿大的新不伦瑞克大学教授

来自: java.dzone.com
14
0
评论 共 5 条 请登录后发表评论
5 楼 nihongye 2008-06-30 17:30
fork-join在douglea的开源包里早有了。
4 楼 ray_linn 2008-04-05 15:41
还不如看Microsoft的C omega,起码是已经在跑的支持多核的东西....
http://research.microsoft.com/Comega/
3 楼 Eastsun 2008-03-29 12:25
JAVA7将于2009年的早期发布
2 楼 hysoft 2008-03-29 11:06
发布了???给个链接??
1 楼 凯旋人生 2008-03-29 09:55
java7已经发布了?还是什么时候发布呢?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics