摘要: 转自http://www.iteye.com/topic/333669 JDK1.5以后加入了concurrent包,主要是为了提高多线程的开发效率,其中提供了很多支持并发的集合类,其中包括:ConcurrentHashMap。大家知道HashTable也是支持并发环境的,也就是说多线程安全的,那两者有什么区别呢?分析 其实简单的说是同步机制有区别,具体区别又在那里呢? 请看HashTable的put方法:Java代码/***Mapsthespecified<code>key</code>tothespecified*<code>value</code 阅读全文
posted @ 2011-11-22 17:24 balaamwe 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.iteye.com/topic/109150volatile, 用更低的代价替代同步为什么 使用volatile比同步代价更低?同步的代价, 主要由其覆盖范围决定, 如果可以降低同步的覆盖范围, 则可以大幅提升程序性能.而volatile的覆盖范围仅仅变量级别的. 因此它的同步代价很低.volatile原理是什么?volatile的语义, 其实是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我.(工作内存详见java内存模型)因此, 当多核或多线程在访问该变量时, 都将直接 操作 主存, 这从本质上, 做到了变量共享.volatile的有什么优势?1, 更大的 阅读全文
posted @ 2011-11-22 17:12 balaamwe 阅读(376) 评论(0) 推荐(0) 编辑