- 博客(6)
- 收藏
- 关注
原创 分布式一致性协议比较(paxos/zab)
针对 paxos 算法和 zab 算法讲解和比较。针对其实现方面的问题进行探讨,如:选票生成,数据同步,活锁,幽灵复现等
2022-08-29 00:18:09 664 2
原创 深入理解Java线程池(3):ThreadPoolExecutor 线程池关闭相关方法与操作
shutdown用于关闭线程池的方法之一。简单来说,会等任务都完成后在关闭线程池。public void shutdown() { final ReentrantLock mainLock = this.mainLock; mainLock.lock(); //全局锁 try { //查看调用shutdown的线程是否有权限结束线程池中的worker...
2018-11-04 20:38:22 1843
原创 深入理解Java线程池(2):ThreadPoolExecutor执行任务相关方法,内部类worker
这次来看看worker线程启动和运行的相关方法。了解任务获取与异常处理机制。关于线程池参数解释,启动方法解析请移步:https://blog.csdn.net/xiaoyuchenCSDN/article/details/83549068Worker先说说Worker类,它作为线程的承载类、任务的执行者,自然少不了实现Rannable接口,在ThreadPoolExecutor的addWo...
2018-11-04 16:41:35 724
原创 深入理解Java线程池(1):ThreadPoolExecutor整体流程梳理,创建worker相关方法
线程池作为一个线程的容器,主要的作用就是防止频繁创建线程,节省时间资源和cpu资源。虽然一定程度上占用了内存,但实际情况下利远远大于弊。构造方法public ThreadPoolExecutor( int corePoolSize, //核心线程数量 int maximumPoolSize, //最大线程数量 long keepAliveTime, //最大存活时间...
2018-10-31 10:28:30 611
原创 jvm synchronized底层设计与优化
通常来讲synchronized被当做重量级锁来使用,但其实它并不是一味地阻塞当前线程,而是通过锁升级等方式进行了很多的优化。一 重量级锁(互斥同步或悲观锁)最原始的,也是synchronized与生俱来的同步方式。使用synchronized可以指定一个锁对象,如果没有指定对象就是用当前对象的实例(非static的普通方法)或者当前对象的class对象(被static修饰的方法)作为被指定...
2018-10-07 16:34:26 176
原创 jvm 类加载器详解
类加载器想说明白什么是类加载器需要先明白几个关键问题:第一个问题:如何确定Java虚拟机中一个类的唯一性?虚拟机如何避免一个类被重复加载?虚拟机中有多个类加载器,只有这个类和类加载器关联才可以确定其唯一性。也就是说一个类如果被不同类加载器加载了,就会生成多个逻辑上完全没有关系的类。第二个问题:什么是类加载器?他的作用是什么?负责动态将Java类加载到Java虚拟机内存空间中。...
2018-09-18 22:46:04 599 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人