- 博客(5)
- 收藏
- 关注
原创 深入理解ThreadPoolExecutor(上):线程池的创建和运行
线程池是我们常用的一个工具,使用起来虽然比较简单,但是想弄清整个框架里面的各种逻辑和原理,还是比较不容易。我将用两篇文章来带大家深入理解线程池ThreadPoolExecutor,本文是上篇,将从线程池的创建和运行展开。线程池的创建主要讲线程池的结构,线程池的运行主要讲线程池的运行过程,比如啥时候创建worker,啥时候销毁worker,怎么获取任务等等。1.worker什么创建?
2024-08-18 19:56:12 1013
原创 深入理解ThreadPoolExecutor(下):线程池的关闭
上一篇文章讲了线程池的创建和启动,这一篇讲线程池的关闭。可能刚开始大家会觉得线程池的关闭很容易理解,不就是调用shutdown()或shutdownNow()方法,中断线程,不再接受任务,等任务执行完,工作线程数量为0时,线程池就关闭了吗。但是,仔细想想,还是会有些疑惑:1)中断线程时是怎么区分空闲线程和非空闲线程的呢?2)中断空闲线程是怎么中断的?3)中断非空闲线程是怎么中断的?如果一个线程正在执行任务,此时中断线程是真的将任务停止了吗?带着疑惑,我们来深入理解线程池的关闭。
2024-08-16 16:10:11 1034
原创 深入理解AQS的CLH队列
我们知道,AQS定义了两种队列,同步等待队列(CLH队列)和条件等待队列(CONDITION队列),在学习AQS的过程中对这两个队列总是有种雾蒙蒙的感觉,到底是怎么入队、阻塞、唤醒、出队的?到底是怎么保证并发安全的?
2024-07-29 05:12:04 783
原创 nodejs、npm、webpack、vue-cli入门及使用
作为一个后端开发,每次碰到前端项目(多半是后台管理)时都十分头疼,每次都要从头开始学习Node、npm、webpack、vue-cli,这次索性就把入门用到的相关知识和使用示例都整理出来。
2024-04-03 16:06:37 1150 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人