
Java虚拟机(JVM)
攻城晓狮子
这个作者很懒,什么都没留下…
展开
-
ThreadLocal的原理
ThreadLocal的原理转载 2020-07-08 10:17:22 · 194 阅读 · 0 评论 -
synchronized的实现原理
在多线程并发编程中,synchronized一直是元老级角色,很多人称呼它为重量级锁。但是在Java SE 1.6之后为了减少获得锁和释放锁的带来的性能消耗而对其进行了各种优化,例如引入了偏向锁和轻量级锁,使得有些情况下synchronized也不那么重了。利用synchronized实现同步的基础是Java中的每一个对象都可以作为锁即同步监视器(对象如同锁),主要有以下三种方式:(1)对于普通同步方法(非静态同步方法),锁是this关键字表示本类对象的引用(当前实例对象);(2)对于静态同步方法,锁原创 2020-07-03 21:53:56 · 252 阅读 · 0 评论 -
Hashtable,HashMap,ConcurrentHashMap的原理和区别
(1)HashMap不是线程安全的,不支持并发操作,没有同步方法。ConcurrentHashMap是线程安全的,支持并发操作,通过继承 ReentrantLock(JDK1.7的重入锁)/CAS和synchronized(JDK1.8的内置锁)来进行加锁(分段锁),每次需要加锁的操作锁住的是一个 segment,这样只要保证每个 segment 是线程安全的,也就实现了全局的线程安全。(2)J...原创 2020-03-26 11:11:17 · 648 阅读 · 0 评论 -
Java虚拟机(JVM)原理与特性
Java虚拟机的主要作用是从软件层面上屏蔽不同操作系统在底层硬件与指令上的区别,使得Java语言具有很好的跨平台性。完整的Java虚拟机由三部分组成:类装载子系统、运行时数据区(Java内存区域)、字节码执行引擎。一、Java内存区域与内存溢出异常1. 运行时数据区域(Java内存模型)1.1 程序计数器(Program Counter Register)程序计数器是当前线程所执行的字节码...原创 2020-03-07 17:23:16 · 1204 阅读 · 0 评论