自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dawn's Blog

Aspire to inspire until I expire.

  • 博客(5)
  • 资源 (2)
  • 收藏
  • 关注

原创 java并发机制底层原理

0.术语 内存屏障:是一组处理器指令,用于实现对内存操作的顺序限制。 缓存行:缓存中可以分配的最小存储单元。 原子操作:不可中断的一个或一系列操作。 缓存行填充:当处理器识别到从内存中读取操作数是可缓存的,处理器读取整个缓存航到适当的缓存(L1,L2,L3的或所有)。 缓存命中:如果进行高速缓存航填充操作的内存位置仍然是下次处理器访问的地址是,处理器从缓存中读取操作数,而不是从内存。

2016-05-31 18:00:23 3976

原创 线程通信

1.可见性 1.1.非原子的64位操作 没有声明为volatile的64位数值变量(double、long),JVM允许将64位的读或写划分为俩个32位操作。如果读写在不同的线程,可能会出现得到一个值的高32位和另一个值的低32位。当JVM的规范完成是,很多主流的处理器框架还不能有效地支持64为算数原子操作。 1.2.加锁 锁不仅仅是关于同步与互斥的,也是关于内存可见的。为了保证所有线

2016-05-31 14:16:31 377

原创 java线程概述

1.多线程概述 #1:Main函数本身就是一个线程,主线程。 #2:多线程可以继承Thread类,也可以继承Runnable接口。 #3:没有严格意义上的并发。对于单核CPU的物理机来说,同一时刻有且只有一条线程在执行,运行多条线程,只是CPU在切换执行权而已,切换速度取决于CPU主频。 #4:JVM自身有很多后台线程执行。 #5:Runnable是一个可执行任务的标志,Thread是线

2016-05-30 21:24:10 472

原创 sun.misc.Unsafe's APIs

Compare And Swap(CAS):CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。 Java并发包(java.util.concurrent)中大量使用了CAS操作,涉及到并发的地方都调用了sun.misc.Unsafe类方法进行CAS操作。 U

2016-05-20 17:14:21 259

原创 源码解析ConcurrentHashMap

本文基于JDK1.7 ConcurrentHashMap包含(segmentMask+1)个Segment,而每个Segment包含若干个HashEntry,各Segment写操作互不影响,实现了分段锁,提供了比Hashtable更好的并发性。 1.构造函数     @SuppressWarnings("unchecked")     public ConcurrentHas

2016-05-20 12:02:49 327

精通Struts基于MVC的Java Web设计与开发 孙亚琴

精通Struts基于MVC的Java Web设计与开发 孙亚琴 完整版

2012-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除