java并发
并发编程的艺术以及学习JUC下的并发工具类
张日天7
BOOM BOOM
展开
-
ThreadLocal源码解析
TODO …原创 2020-05-22 22:00:22 · 158 阅读 · 0 评论 -
一段代码搞懂ThreadLocal
引言ThreadLocal的官方API解释为:“该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。”ThreadLocal 的作用ThreadLocal是解决线程安全问题一个很好的思路,它通过为每个线程提供一个独原创 2020-05-22 21:40:15 · 178 阅读 · 0 评论 -
一段代码让你彻底搞懂HashMap死循环
在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,在get操作时遍历链表就会产生死循环。那么这个死循环是如何生成的呢?我们来具体分析下。HashMap扩容流程引发死循环,是在HashMap的扩容操作中,正常的扩容操作是这个流程。HashMap的扩容在put操作中会触发扩容,主要是三个方法:原创 2020-05-16 13:57:39 · 870 阅读 · 1 评论