![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
文章平均质量分 95
是谁偷吃了奶酪
这个作者很懒,什么都没留下…
展开
-
【JUC】并发编程 ThreadLocal 源码 解析(ThreadLocalMap 源码)(ThreadLocal 为什么使用弱引用?内存泄漏?)
ThreadLocal的内部结构,JDK最早期的`ThreadLocal` 设计,现在的设计,这样设计的好处。ThreadLocal的核心方法源码,set方法,get方法,remove方法,initialValue方法。ThreadLocalMap源码分析,基本结构,弱引用和内存泄漏,弱引用和内存泄漏。原创 2024-05-09 17:38:21 · 639 阅读 · 0 评论 -
【JUC】并发编程 AQS,ReentryLock,CyclicBarrier,CountDownLatch 原理总结
独占和共享的最大区别就是State的定义不同,独占模式下State只有0和1,共享资源/临界区代码 只能由一个线程来执行,但是共享模式下的State可以为多个,只要是符合条件的当前线程都可以来使用。条件队列,基于Node内部类,实现了一个单项链表,相当于Synchronized的wait和notify的一个等待唤醒机制的条件队列。补充: AQS的阻塞队列和条件队列的实现,都是通过Node节点,不过是通过Node节点的不同属性,且一个是双向 一个是单向。【尝试获取锁的方法】原创 2024-05-08 19:00:32 · 1090 阅读 · 0 评论 -
【JUC】并发编程 Synchronized 锁升级原理
monitorenter: 将锁对象对象头中Mark Word的前30bit替换成指向操作系统中与其关联的monitor对象,将锁记录位状态改为10monitorexit: 将锁对象对象头中Mark Word进行重置,重新恢复成原来的样子,并通过在EntryList中等待的线程来继续竞争!工作流程:开始时 Monitor 中 Owner 为 null。原创 2024-05-08 18:50:42 · 806 阅读 · 0 评论