并发编程基础ReentrantLock源码分析
//Note1:(双向链表。初始的时候head和tail都指向Null,之后添加新节点的时候会创建一个空Node,head和tail都指向这个空Node代表初始化完成。尾插法入队通过移动尾结点tail往前移动,出队通过移动head节点head节点往前移动。当Head节点和tail指向同一个Node时代表没有阻塞队列中没有等待的线程)
//之后唤醒的时候也会通过tail尾结点一直像后遍历拿到真正处于等待状态的Node线程,然后通过LockSupport提供的Unpark指定唤醒Node线程;
// 阻塞的时候
原创
2022-02-16 22:40:12 ·
3007 阅读 ·
27 评论