首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

多核线程-volatile原理与技巧

为什么使用volatile比同步代价更低?同步的代价, 主要由其覆盖范围决定, 如果可以降低同步的覆盖范围, 则可以大幅提升程序性能. 而volatile的覆盖范围仅仅变量级别的. 因此它的同步代价很低.volatile原理是什么?volatile的语义, 其实是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我.(工作内存详见java内存模型)因此, 当多核或多线程在访问该变量时, 都将直接操作主存, 这从本质上, 做到了变量共享.volatile的有什么优势?1, 更大的程序吞吐量2, 更少的代码实现多线程3, 程序的伸缩性较好4, 比较好理解, 无需太高的学习成本volatile有什么劣势?1, 容易出问题2, 比较难设计volatile运算存在脏数据问题volatile仅仅能保证变量可见性, 无法保证...
类别:程序开发 - JAVA    查看:101    更新:2014-05-15

超线程多核心下Java多线程编程技术分析

在引入Java多线程技术后,几乎所有应用程序的开发在性能上都得到了很大的改进。本文将通过探讨超线程技术以及新出现的多核心Intel处理器技术来分析这些线程技术是怎样成为Java编程的一个标准部分的。  一、Java环境下的多线程技术  构建线程化的应用程序往往会对程序带来重要的性能影响。例如,请考虑这样一个程序,它从磁盘读取大量数据并且在把它们写到屏幕之前处理这些数据(例如一个DVD播放器)。在一个传统的单线程程序(今天所使用的大多数客户端程序)上,一次只有一个任务执行,每一个这些活动分别作为一个序列的不同阶段发生。只有在一块已定义大小的数据读取完成时才能进行数据处理。因此,能处理数据的程序逻辑直到磁盘读操作完...
类别:程序开发 - JAVA    查看:112    更新:2014-05-15