多线程
文章平均质量分 83
web2u
拜AI古佛,修赛博禅心
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ThreadLocal 核心原理与内存泄漏问题深度解析
ThreadLocal通过为每个线程创建变量的独立副本来实现线程隔离,其核心是ThreadLocalMap存储结构。Key为弱引用避免ThreadLocal对象泄漏,但Value仍可能因线程池中线程长期存活而泄漏。最佳实践是使用static final修饰ThreadLocal,并在finally中调用remove()方法显式清理。相比锁机制,ThreadLocal以空间换时间,通过资源副本避免竞争,从根本上规避死锁风险。内存泄漏的根本解决方案是及时调用remove()断开Entry对Value的强引用。原创 2025-09-19 00:55:43 · 458 阅读 · 0 评论 -
CompletableFuture
是 Java 8 引入的一个用于异步编程的类,它是 Future 接口的增强版本。runAsync()allOf()anyOf()handle()这些是 CompletableFuture 的基础用法,它能大大简化异步编程的复杂度。需要注意的是,CompletableFuture 默认使用 ForkJoinPool.commonPool(),在生产环境中可能需要考虑使用自定义的线程池。原创 2025-03-01 19:52:44 · 635 阅读 · 0 评论 -
ReadStackLog源码阅读
该线程不断地进入睡眠状态(: 该线程进入等待状态(WAITING),等待一个对象的通知。和: 这两个线程尝试获取同一个锁(由于先获得锁,将一直被阻塞(BLOCKED:进入睡眠状态,展示了。:进入等待状态,展示了WAITING。和获得锁后进入睡眠状态,展示了。因为锁被占用而进入阻塞状态,展示了BLOCKED。通过使用jps和jstack工具,你可以观察到这些线程的具体状态及其调用堆栈。这对于理解 Java 线程状态和调试多线程应用非常有帮助。释放锁:在。原创 2025-01-13 10:35:12 · 864 阅读 · 0 评论
分享