javaSE
文章平均质量分 81
城
这个作者很懒,什么都没留下…
展开
-
聊聊并发(三)——JAVA线程池的分析和使用
原文地址:http://www.infoq.com/cn/articles/java-threadPool?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复转载 2013-01-12 18:00:28 · 260 阅读 · 0 评论 -
聊聊并发(二)——Java SE1.6中的Synchronized
原文地址:http://www.infoq.com/cn/articles/java-se-16-synchronized1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而转载 2013-01-12 02:09:13 · 269 阅读 · 0 评论 -
聊聊并发(四)——深入分析ConcurrentHashMap
原文地址:http://www.infoq.com/cn/articles/ConcurrentHashMap?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk术语定义术语英文解释哈希算法hash algorithm转载 2013-01-22 17:25:42 · 304 阅读 · 0 评论 -
聊聊并发(五)——原子操作的实现原理
1. 引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Intel处理器和Java里是如何实现原子操作的。2. 术语定义术语英文解释缓存行Cache line缓存的最小操作单转载 2013-01-22 17:29:05 · 608 阅读 · 0 评论 -
Java深度历险(一)——Java字节代码的操纵
原文地址:http://www.infoq.com/cn/articles/cf-java-byte-code【编者按】Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展。但是对于Java语言的深度理解和运用,毕竟是很少会有人涉及的话题。InfoQ中文站特地邀请IBM高级工程师成富为大家撰写这个《Java深度历险转载 2013-01-12 01:49:39 · 281 阅读 · 0 评论 -
聊聊并发(一)——深入分析Volatile的实现原理
原文地址:http://www.infoq.com/引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬转载 2013-01-12 01:34:27 · 288 阅读 · 0 评论 -
深入理解Java内存模型(一)
在java中,所有实例域、静态域和数组元素存储在堆内存中,堆内存在线程之间共享(本文使用“共享变量”这个术语代指实例域,静态域和数组元素)。局部变量(Local variables),方法定义参数(java语言规范称之为formal method parameters)和异常处理器参数(exception handler parameters)不会在线程之间共享,它们不会有内存可见性问题,也不受内转载 2013-03-19 21:15:11 · 537 阅读 · 0 评论 -
深入理解Java内存模型(二)——重排序
数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位置。写后写a = 1;a = 2;写一个变量之后,再写这个变量。读后写a = b;b = 1;读转载 2013-03-24 18:10:28 · 367 阅读 · 0 评论 -
深入理解Java内存模型(三)——顺序一致性
数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程转载 2013-03-24 18:13:00 · 417 阅读 · 0 评论