JUC
文章平均质量分 83
好z
毕业两年了,光阴似箭矣
展开
-
重回synchronized(源码解读与实战解析篇)
以下获取和释放流程皆出自源码原创 2022-11-23 09:44:05 · 906 阅读 · 0 评论 -
从ReentrantReadWriteLock开始的独占锁与共享锁的源码分析
ReentranReadWriteLock读写获取和释放重写方法的源码全分析原创 2022-11-18 17:43:01 · 427 阅读 · 0 评论 -
并发入门组件AQS源码解析(未完善)
并发入门组件AQS源码解析(未完善)原创 2022-11-17 10:40:13 · 251 阅读 · 0 评论 -
CAS+volatile+两个小工具(有误待更)
CAS+volatile+两个小工具原创 2022-11-17 10:34:07 · 137 阅读 · 0 评论 -
线程池的基本使用
线程池的包Excecutor 最初接口,只有excecute方法,这个方法只能放入RunnableExcecutorService 继承自Excecutor,有着更多的任务操作接口,比如取消,等待,并且也提供了submit方法,参数为Callable,返回类型为Future,用来获得返回值或异常AbstractExecutorService 实现了ExcutorService,对线程池的基本实现,比如将submit进来的Callable给适配成Runnable来执行execute(),但并没有实现ex原创 2022-02-22 20:41:50 · 475 阅读 · 0 评论 -
用AQS自制锁
错误版本:多个线程同时判断state==0,虽然compareAndSet只有一个完成,但是没完成的也会篡改下面的信息,应该让compareAndSet成为判断条件import sun.misc.Unsafe;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.AbstractQueuedSynchronizer;public class CustomLock { publi原创 2021-09-02 11:48:52 · 68 阅读 · 0 评论 -
JUC三大底层组件
CAS,volatile和synchronized原创 2021-09-01 11:03:44 · 249 阅读 · 0 评论 -
硬核FutureTask解析
构造方法增加任务,可以选择Callable或Runnable,需要注意的是,Runnable也可以有返回值,因为它调用了Executor当中的RunnableAdapter,可以将Ruannable适配成Callable主要参数WaitNode 保存自己当前线程和下一个WaitNode的指针,用于无锁并发,从通过CAS栈顶添加节点状态转变仅存在三个方法,set(),setException(),cancel()在COMPLETING状态和INTERRUTING状态是懒写入的,因为值唯一并且在原创 2021-11-27 15:03:27 · 363 阅读 · 0 评论