自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 问答 (1)
  • 收藏
  • 关注

原创 线程池关闭流程

线程池的状态转换:关闭线程池的方法shutdown():把线程池状态修改为SHUTDOWN,并通过interruptIdleWorkers()中断所有空闲工作者线程。shutdownNow():把线程池状态修改为STOP,并通过interruptWorkers()中断所有工作者线程。  shutdownNow()会中断正在工作的工作者线程,也仅仅是中断目标线程,但目标线程不一定响应中断或者已处理中断异常,它并不是停止目标线程。线程池是如何判断工作者线程是空闲还是忙碌呢?  工作者线程W

2020-08-18 17:46:39 987 1

原创 线程池拒绝策略bug?

  首先看一下任务提交的流程:  线程池的最大线程数为2,任务队列大小为1,理论上最多同时可提交3个任务,但实际却触发了拒绝策略。public static void main(String[] args) throws InterruptedException { ThreadPoolExecutor tp = new ThreadPoolExecutor(0, 2, 100, TimeUnit.DAYS, new LinkedBlockingDequ

2020-08-18 16:10:32 348 3

原创 线程池回收工作者线程原理

线程池是如何回收工作者线程的  首先线程池的工作者线程是不区分它是核心线程还是非核心线程的,那么线程池是如何回收掉非核心线程?又如何保证核心线程不会被回收?当然你也可以allowCoreThreadTimeOut(true)设置核心线程也过期。runWorker()源码解析工作者线程就是执行run()方法,然后内部调用runWorker()final void runWorker(Worker w) { Thread wt = Thread.currentThread();

2020-08-18 15:29:35 1037

原创 ThreadLocal 内存泄漏

个人对内存泄漏的理解:如果一个我用不到对象一直内存里,那么它就是内存泄漏。TheadLocal实现原理: 通过线程私有的空间来存储数据,即在Thread类里有一个ThreadLocalMap类型的变量:/* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ThreadLocal.ThreadLocalMap thread...

2020-07-28 09:11:31 202

原创 Redis分布式锁实现(简洁实现)

实现原理: 加锁:使用Redis命令,set key value NX,当key不存在时,此操作才可成功。所以当对一个key多次执行此操作时,只有一个线程能够成功,即满足了锁的互斥性。但如果客户端在成功加锁后,没有释放锁(可能是程序员粗心,也可能是系统崩溃等不可抗力因素),此时无论是谁都无法加锁,从而导致死锁,所以在加锁时需要设置key的过期时间,即set key value EX ...

2020-03-05 15:12:57 198

原创 MySQL统计1的个数 多个连续的1视作只有一个1

MySQL统计1的个数,多个连续的1视作一个1: 上图的统计结果应该是4个1。 这里我使用使用自定义变量来实现: 查询结果为预期的4条记录,但是如果重复执行该sql,发现结果不一样: 这是因为MySQL自定义变量对于仅对于此次连接有效,也就是在一个连接里是共享的。而最后一条记录(id=16)的值为1,在一次查询结束后@...

2019-12-21 17:30:31 546

原创 postgresql查询取别名时大小写问题

 PostgreSQL的一个"特别"之处,给数据列取的别名被完全转成小写了。在取别名时加上"就可以解决这一问题。截图如下:

2018-08-06 09:39:54 4632 4

原创 Spring Data JPA 学习笔记

1、实体类无法继承父类属性的解决办法@MappedSuperclass//在父类上添加此注解public class BasePO2、列名与数据库关键字冲突的解决办法@Column(name = "`index`", nullable = true)//使用``包围列名public Integer getIndex() { return index;}

2018-01-15 11:54:57 217

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除