![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程
主要是concurrent模块的源码分析
weixin_42754390
这个作者很懒,什么都没留下…
展开
-
java AQS之源码详解
AQS的基本数据结构为Node; Node的结构解析: SHARED:代表一个标识位,指示节点使用共享模式; EXCLUSIVE:表示节点使用的是独占模式等待; CANCELLED:等待状态,表示线程已经被取消(节点因为超时或者被打断而取消) SIGNAL:等待状态值,表示后继的线程需要取消阻塞; prev:当前节点的前驱节点; next:当前节点的后续节点; thread:当前节点持有的线程,构造方法中初始化,使用完毕之后设置为null; nextWaiter:指向下一个处于阻塞等待的节点; lock方原创 2022-04-02 10:21:09 · 820 阅读 · 0 评论 -
Java并发编程 Condition源码详解
Condition概述: Java对象有一组监视器方法:wait,notify,而synchronized本身就是利用虚拟机提供的对象监视器(objectMonitor)实现同步,这些方法与synchronized配合实现了等待和通知模式,Conditon提供了类似synchronized监视器的方法,利用AQS条件队列与Lock配合实现了等待和通知模式; Condition内部是AQS的内部类利用条件队列实现阻塞和通知线程的效果;当一个线程在调用了await方法以后会被阻塞,调用signal方法唤醒,这种原创 2022-03-30 11:39:32 · 447 阅读 · 0 评论 -
FutureTask 源码分析
FutureTask介绍: FutureTask是一个RunnableFuture<V>,而RunnableFuture实现了Runnable又实现了Future<V>这两个接口; FutureTask源码分析: 首先分析run方法: public void run() { if (this.state == 0 && UNSAFE.compareAndSwapObject(this, runnerOffset, (Object)null, Thread.c原创 2022-03-29 23:15:40 · 158 阅读 · 0 评论