![](https://img-blog.csdnimg.cn/20210508015840622.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java并发编程
文章平均质量分 93
Java并发编程
一直不懂
笔记
展开
-
深入详解ThreadLocal内存泄漏问题
1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问的问题,通过threadLocal.set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中,这样每个线程使用自己的对象实例,彼此不会影响达到隔离的作用,从而就解决了对象在被共享访问带来线程安全问题。如果将同步机制和threadLocal做一个横向比较的话,同步机制就是通过控制线程访问共享对象的顺序,而threadLocal就是为每一个线程分配一个该对象,各用各的互不影响。打个比方说,现在有100个同学需转载 2022-01-13 11:50:24 · 2372 阅读 · 2 评论 -
深入理解Java线程池:ThreadPoolExecutor
线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题: 如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。可能出现服务器在为每个请求创建新线程和销毁线程上花费的时间和消耗的系统资源要比处理实际的用户请求的时间和资源更多。 ...转载 2019-07-12 18:41:18 · 314 阅读 · 0 评论 -
偏向锁、轻量级锁、重量级锁解析
Java 对象头 在32位虚拟机和64位虚拟机的 Mark Word 所占用的字节大小不一样,32位虚拟机的 Mark Word 和 class Pointer 分别占用 32bits 的字节,而 64位虚拟机的 Mark Word 和 class Pointer 占用了64bits 的字节,下面我们以 32位虚拟机为例,来看一下其 Mark Word 的字节具体是如何分配的 32位虚拟机 64位虚拟机 偏向锁、轻量级锁的状态转化及对象Mark Word的关系 偏向锁的获得和撤销流程 时序图 流程图原创 2021-02-19 21:39:56 · 5101 阅读 · 6 评论 -
Java多线程中断机制
在学习/编写并发程序时,总会听到/看到如下词汇: 线程被中断或抛出InterruptedException 设置了中断标识 清空了中断标识 判断线程是否被中断 在 Java Thread 类又提供了长相酷似,让人傻傻分不清的三个方法来处理并发中断问题: interrupt() interrupted() isInterrupted() ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200607234307618.png 600x) 看到这我不禁会问自己: 什转载 2020-06-07 23:58:59 · 338 阅读 · 0 评论