最新发布

LinkedList源码分析

LinkedList 是 Java 中的一种数据结构。它以双向链表的形式存储数据,允许快速地在链表中间进行插入和删除操作。可高效地进行头尾节点的添加和移除。适用于频繁进行数据增减操作的场景,但随机访问元素的效率相对较低。

huizhang43 阅读:12 评论:0 2024-08-22

AQS原理分析

AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的线程加入到队列中

huizhang43 阅读:18 评论:0 2024-08-22

ThreadLocal全分析

ThreadLocal 为每个使用它的线程提供独立的变量副本。它能实现线程间数据隔离,避免多线程对共享变量的并发访问问题。不同线程可独立操作自己的变量,互不干扰,常用于存储线程局部的状态信息,如用户会话数据等。

huizhang43 阅读:11 评论:0 2024-08-22

ReferenceQueue源码分析

ReferenceQueue 是 Java 中的一个用于管理引用对象的队列。它与软引用、弱引用和虚引用配合使用,当被引用的对象被回收时,相应的引用对象会被加入到这个队列中。这有助于跟踪对象的回收情况,实现资源的有效管理。

huizhang43 阅读:9 评论:0 2024-08-22

ReentrantLock加解锁流程

ReentrantLock中对共享资源的独占主要是通过AQS中的成员变量state来控制,通过CAS操作state值来实现加锁和释放锁。同时那些没有获取到锁的线程就会被放到AQS中维护的一个FIFO双向队列中,将它们阻塞起来,当state值被修改成0的时候(有线程释放锁了),这些线程会被唤醒去尝试修改state的值(获取锁)。

huizhang43 阅读:9 评论:0 2024-08-22

«