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