欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 多核理解

程序员文章站 2022-07-12 18:39:07
...
多核、超线程CPU时代将成就Java性能之王的地位
 转自:http://www.cnblogs.com/armlinux/archive/2006/11/19/2391060.html
传统上提升CPU性能的主要手段是提高CPU的主频。但是,经过30多年的发展,CPU的主频速度已经接近物理极限,很难再提高CPU的主频。
现在,CPU已经进入了超线程、多核CPU的时代。为了提高CPU的运算性能,现在只有使用具有超线程技术的多核CPU。
传统的CPU,只有一个内核,这个内核也只能够同时运行一个线程。采用超线程技术的CPU,可以在一颗内核上同时运行多个线程。而多核CPU更是在一个CPU上嵌入多颗采用超线程技术的内核。这样,多核CPU就可以同时运行更多的线程。
多核、超线程CPU已经成为大势所趋。Sun、IBM、AMD、Intel这些主流CPU厂商都已经采用了这种技术。未来CPU之间的竞争,将从主频变为多核、多线程的竞争。
这意味着,传统的单线程的程序,将无法利用未来多核CPU多线程并发执行的能力。单线程程序将会极大地浪费多核CPU的运算能力!
C++这种面向机器的语言,传统上一直是性能之王。但是,C++对多线程技术的支持非常有限。标准C++甚至没有提到线程这个概念。要想使用C++开发多线程程序是非常困难的。因此,使用C++编写的程序,将很难适应多核、超线程CPU时代对程序的要求。C++将离开性能之王的宝座!
而Java则从一开始就在语言层面上支持多线程。使用Java编写多线程的程序是非常简单的。因此,基本上所有的Java程序,包括J2ME、J2SE、J2EE程序都使用了多线程技术。在传统单核、单进程CPU上,Java多线程程序在性能上无法与C++单进程程序相比。但是,随着多核、超线程CPU时代的到来,未来CPU上将能够同时运行更多的线程。10、100、1000…根据摩尔定律,相信未来CPU上的线程数目将会飞速发展。
多核、超线程CPU时代将成就Java性能之王的地位!
当然,还有其他的编程语言也很好的支持多线程开发。如模仿Java的.NET。
首先受益的是JavaEE企业级软件。JavaEE软件部署在高性能服务器上。每一次用户请求,都会生成一个新的线程。因此,JavaEE软件的线程数目是非常巨大的。特别是对一些大型的网站来说。如果服务器使用多核、超线程CPU,那么就将极大地提高线程处理能力,提高系统的并发访问量。