并发编程
文章平均质量分 88
Darren i
这个作者很懒,什么都没留下…
展开
-
一文搞懂ThreadLocal及相关的内存泄露问题
首先,看一张整体的结构图,来帮助理解 什么是ThreadLocal ThreadLocal用于创建线程局部变量,如果创建一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个副本,在实际多线程操作的时候,操作的是自己本地内存中的变量,从而规避了线程安全问题 ThreadLocal的简单使用 package test; public class ThreadLocalTest { static ThreadLocal<String> threadLocal=原创 2021-04-03 14:16:46 · 1608 阅读 · 1 评论 -
Java中synchronized同步块的执行流程
必要知识 Java 对象的数据结构 在 HotSpot 虚拟机中,Java 对象在内存中存储的布局可以分为 3 块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding) 对象头中的 Mark Word 部分,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳等,其中的最后 2bit 是锁状态标志位(无锁、偏向锁、轻量级锁、重量级锁、GC 标识) synchronized 的执行过程原创 2021-03-05 22:00:28 · 1919 阅读 · 0 评论 -
Thread打印值的含义
打印当前线程: log.warn("当前线程:"+Thread.currentThread()+"); 输出结果: 输出结果各部分的含义: Thread[ 线程名称, 线程优先级, 线程所属线程组 ]原创 2020-11-27 16:54:51 · 467 阅读 · 0 评论