- 博客(5)
- 收藏
- 关注
原创 JVM垃圾回收
看到垃圾回收,首先你会想到什么? 1、什么是垃圾? 2、哪些地方的垃圾需要被回收? 3、如何定位垃圾? 4、如何回收垃圾? 5、什么时候回收垃圾? 下面,我们将带着这5个问题来进行分析。 1、什么是垃圾? JVM中的垃圾指的是无用的内存,这些内存中的数据若在后续处理过程中不再被使用,那么我们将是为垃圾进行回收,以保证有足够的内存可用。 程序在运行过程中会存在两个问题: 内存溢出:是指内存空间分配...
2019-09-18 22:30:52
149
原创 ReentrantLock详解
ReentrantLock实现方式与Synchronized实现方式对比 1.ReentrantLock实现 public static void main(String[] args) { ReentrantLock lock = new ReentrantLock(); Thread t1 = new Thread(new Runnable() { @Ove...
2019-09-17 22:33:19
219
原创 JVM运行时数据区域
今天我们一起来学习一下JVM内存模型中非常重要的一部分:运行时数据区 接下来我们将带着一下几个问题来共同学习这一部分。 一、什么是运行时数据区? 二、运行时数据区都包括哪些区域? 三、各个区域的作用是什么? 好了,接下来我们先来解答一下第一个问题:什么是运行数据区? Java虚拟机在执行Java程序的过程中,会将涉及的数据划分到不同的内存区域去管理,而这部分区域就是我们接下来要主要讲解的运行时数据...
2019-09-16 22:26:30
143
原创 线程的生命周期及涉及的方法
一、线程的生命周期 线程是一个动态执行的过程,它也有从一个产生到死亡的过程。 1、生命周期的五种状态 新建(new Thread) 当创建Thread类的一个实例(对象)时,此进程进入新建状态(未被启动) 例如:t1=new Thread() 就绪(runnable) 线程已经被启动,正在等待被分配给CPU时间片,也就是说此时线程正在就绪队列中排队等候得到CPU资源 例如:t1.star...
2019-09-16 21:41:47
286
原创 redis+Lua实现分布式锁
1.方法lock(String lock, int expire) :获取锁 expire,锁的过期时间 setnx(),只有当lock不存在时才会赋值,赋值成功返回1,赋值失败返回0 public boolean lock(String lock, int expire) throws Exception { Assert.notNull(lock, "lock must not be nul...
2018-12-22 01:59:39
484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人