- 博客(3)
- 问答 (1)
- 收藏
- 关注
转载 Java对象内存布局
在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。对象头 HotSpot虚拟机的对象头包括两部分信息:第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的
2017-11-13 21:30:50 216
原创 JDK源码走读之ReentrantLock
ReentrantLock的功能几乎等同于Synchronized,在分析源码之前,我们首先来明确一下ReentrantLock要实现的功能,这样才能做到有的放矢。控制线程执行顺序。当线程获取锁进入Synchronized代码块(获取监视器),其余线程必须等待该线程执行完毕,才能继续执行该代码块。提供线程通信功能。Synchronized关键字支持在其代码块中使用await、notify、
2017-11-11 17:30:26 372
转载 如何聪明地使用锁
竞争锁是造成多线程应用程序性能瓶颈的主要原因 区分竞争锁和非竞争锁对性能的影响非常重要。如果一个锁自始至终只被一个线程使用,那么 JVM 有能力优化它带来的绝大部分损耗。如果一个锁被多个线程使用过,但是在任意时刻,都只有一个线程尝试获取锁,那么它的开销要大一些。我们将以上两种锁称为非竞争锁。而对性能影响最严重的情况出现在多个线程同时尝试获取锁时。这种情况是 JVM 无法优化的,而且通常会发生从用户
2017-11-10 16:07:12 1717
空空如也
Redis 如何通过aof文件恢复数据
2017-10-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人