过去的近30年间,计算机性能一直由摩尔定律来推动;从今天起,它将由Amdahl 定律推动。编写能够高效利用多处理器的代码,将会成为很大的挑战。
“多核处理器正变得越来越便 宜”。现在看来,多处理器系统正变得越来越便宜这一趋势 还在继续,如果有什么不同,只是愈演愈烈了。几乎所有主要的计算机生产厂商都在初级 笔记本电脑和台式机中加入了多核处理器特性,而在服务器级别的机器上,每个处理器的 内核数量也多于去年的内核数量。事实上,寻找出单处理器的系统正变得越来越难了。
这些硬件的发展趋势使软件的开发者面临着严峻的挑战。我们不能满足于仅仅在新的 CPU上运行现有的程序,使它们跑得更快;如果我们想要发挥全新的处理器的能力,就必 须编写程序来支持并发环境。在做这件事的过程中,会在架构、编程和测试方面遇到重大 的挑战。
现在,与以往任何时候相比,“并发”与每一位Java开发者都更加息息相关了
随着计算机 技术的不断迅速发展,各种各样的编程模型也越来越多,越来越复杂化与多样化。虽然当 前CPU主频在不断升高,但是X86架构的硬件已经成为瓶颈,这种架构的CPU主频已经接近顶峰,多线程编程模型不仅是目前提 高应用性能的手段,更是下一代编程模型的核心思想。它的目的就是“最大限度地利用 CPU资源”,当某一线程的处理不需要占用CPU而只需要I/O等其他资源时,就可以让 需要占用CPU资源的其他线程有机会获得CPU资源。因此,就目前来说,多线程编程模 型仍是计算机系统架构的最有效的编程模型。
我们已经进入了全新的时代,多核的时代。
线程的优点摘自(java并发编程-1.2)
多核的影响是广泛且深入的。企业需要改变以往基于CPU数的计价方式。系统设计 者需要重新审视多核产生的并行性带来的影响。一线的开发人员要学习新的开发思路、技 巧和工具•并行的理念需要融入到系统的设计与实现的过程中。对程序员来说,多核带来 的变化并不像时钟频率增加那样透明。以前我们巳经对软件加入了很多的期望,比如可扩 展性、健壮性、可伸缩性、可测试性,等等,今天我们还要考虑软件是否充分发挥了微处 理器的全部性能。只有充分挖掘程序的并行性,才能让多核处理器物尽其用,才能让你的 软件在今后内核不断增加的日子里,得以保持升级。
恰当地使用线程时,可以降低开发和维护的开销,并且能够提高复杂应用的性能。线 程通过把异步的工作流程转化为普遍存在的顺序流程,使程序模拟人类工作和交互变得更 容易了。另一方面,它们可以把复杂、难以理解的代码转化为直接、简洁的代码,这样更 容易读写及维护。
线程在GUI应用程序中是非常有用的,可用来改进用户接口的响应性,并且在服务器 应用中,用于提高资源的利用率和吞吐量。它们也可以简化JVM的实现——垃圾收集器 (garbage collector)通常运行于一个或多个持续工作的线程之间。大部分至关重要的Java 应用都依赖于线程,某种程度上是因为它们的组织结构需要这样。
未完待续。。。。。。



