![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 94
@开弓没有回头箭
这个作者很懒,什么都没留下…
展开
-
ThreadLocal常见面试题
ThreadLocal 的原理是在Thread内部有一个ThreadLocalMap的集合对象,他的key是ThreadLocal,value就是你要存储的变量副本,不同线程的 ThreadLocalMap 是隔离开的,如果ThreadLocal 变量是非 static 的话,就会使得每次生成实例都要生成不同的 ThreadLocal 对象,虽然这样程序不会有什么异常,但是会造成内存资源的浪费。但是ThreadLocal 变量定义成staic也有一定的缺点,就是在线程池的情况下更容易造成内存泄露。原创 2023-08-07 23:20:21 · 785 阅读 · 0 评论 -
线程池ThreadPoolExecutor源码剖析
主要是为了解决线程中断问题,在空闲时可以响应中断,在执行任务时不可被中断。该策略实现了一种调节机制,该策略既不会抛弃任务,也不会抛出异常,而是将任务回退到调用者(调用线程池执行任务的主线程),由于执行任务需要一定时间,因此主线程至少在一段时间内不能提交任务,从而使得线程池有时间来处理完正在执行的任务。首先 Worker 是内部自己实现的锁,是不可重入锁,相当于内部有个 state 属性值,在 Worker 执行任务前会 w.lock 将 state 设置为1,表明自己正在执行任务,也就是处于非空闲状态。原创 2023-07-24 19:25:57 · 139 阅读 · 0 评论