node是AQS队列节点对象,其实node的源码没什么好解析的,本节看下node的数据结构以及入队出队
其实作者对于node的结构在注解里说的很清晰了:
* <pre>
* +------+ prev +-----+ +-----+
* head | | <---- | | <---- | | tail
* +------+ +-----+ +-----+
* </pre>
大概画了下node过程:
注意:队头head节点的thread一定为null,用于表示正在执行的线程对象,且用于唤醒后续线程