知识大全 超线程多核心下Java多线程编程技术分析[4]

Posted

篇首语:无志山压头,有志人搬山。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 超线程多核心下Java多线程编程技术分析[4]相关的知识,希望对你有一定的参考价值。

超线程多核心下Java多线程编程技术分析[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    四 使用线程池

    如前所提及 在线程完成执行时 它们将被JVM杀死而分配给它们的内存将被垃圾回收机制所回收 不断地创建和毁灭线程所带来的麻烦是它浪费了时钟周期 因为创建线程确实耗费额外的时间 一个通用的且最好的实现是在程序运行的早期就分配一组线程(称为一个线程池) 然后在这些线程可用时再使用它们 通过使用这种方案 在创建时分配给一个线程指定的功能就是呆在线程池中并且等待分配一项工作 然后 当分配的工作完成时 该线程被返回到线程池

    J SE 引入了java util concurrent包 它包括了一个预先构建的线程池框架 这大大便利了上述方法的实现 有关Java线程池的更多信息及一部教程

    在设计线程程序和线程池时 自然出现关于应该创建多少线程的问题 答案看你怎样计划使用这些线程 如果你基于分离的任务来用线程划分工作 那么线程的数目等于任务的数目 例如 一个字处理器可能使用一个线程用于显示(在几乎所有系统中的主程序线程负责更新用户接口) 一个用于标记文档 第三个用于拼写检查 而第四个用于其它后台操作 在这种情况中 创建四个线程是理想的并且它们提供了编写该类软件的一个很自然的方法

    然而 如果程序 象早些时候所讨论的那个一样 使用多个线程来做类似的工作 那么线程的最佳数目将是系统资源的反映 特别是处理器上可执行管道的数目和处理器的数目的反映 在采用英特尔处理器超线程技术(HT技术)的系统上 当前在每个处理器核心上有两个执行管道 最新的多核心处理器在每个芯片上有两个处理器核心 英特尔指出将来的芯片有可能具有多个核心 大部分是因为额外的核心会带来更高的性能而不会从根本上增加热量或电量的消耗 因此 管道数将会越来越多

    照上面这些体系结构所作的算术建议 在一个双核心Pentium 处理器系统上 可以使用四条执行管道并因此可以使用四个线程将会提供理想的性能 在一个双处理器英特尔Xeon?处理器的工作站上 理想的线程数目是 因为目前Xeon芯片提供HT技术但是没提供多核心模型 你可以参考下面文档来了解这些新型处理器上的执行管道的数目

    五 小结

    你当在平台上运行线程化的Java程序时 你将可能想要监控在处理器上的加载过程与线程的执行 最好的获得这些数据与管理JVM怎样处理并行处理的JVM之一是BEA的WebLogic JRockit JRockit还有其它一些由来自于BEA和Intel公司的工程师专门为Intel平台设计和优化的优点

    不考虑你使用哪一种JVM Intel的VTune Performance Analyzer将会给你一个关于JVM怎样执行你的代码的很深入的视图 这包括每个线程的性能瓶颈等 另外 Intel还提供了关于如何在Java环境下使用VTune Performance Analyzer的白皮书[PDF MB]

    总之 本文提供了线程在Java平台工作机理的分析 由于Intel还将继续生产HT技术的处理器并且发行更多的多核心芯片 所以想从这些多管道中得到性能效益的压力也会增加 并且 由于核心芯片数目的增加 管道的数目也将相应地增加 唯一的利用它们的优点的办法就是使用多线程技术 如在本文中所讨论的 并且Java多线程程序的优势也越来越明显

cha138/Article/program/Java/gj/201311/27729

相关参考

知识大全 超线程多核心下Java多线程编程技术分析[1]

超线程多核心下Java多线程编程技术分析[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 超线程多核心下Java多线程编程技术分析[2]

超线程多核心下Java多线程编程技术分析[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 超线程多核心下Java多线程编程分析

超线程多核心下Java多线程编程分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一Java环

知识大全 浅析Java多线程编程中的高级技术

浅析Java多线程编程中的高级技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 Java多线程编程基础之线程和多线程

Java多线程编程基础之线程和多线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  随着计算机技

知识大全 Java多线程编程基础之线程对象

Java多线程编程基础之线程对象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 多线程编程您不知道的5件事

   多线程编程向来不容易但很少有Java?开发人员能够忽视多线程编程和支持它的Java平台库我们临时学习线程在需要时向我们的工具箱添加新的技巧和技术以这种方式构建和运行

知识大全 Java多线程编程

Java多线程编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者natrium    一理

知识大全 Java多线程编程的常见陷阱

Java多线程编程的常见陷阱  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在构造函数中启动线程

知识大全 Java 5.0多线程编程

Java5.0多线程编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java自年面世以来得到