CAS+volatile
state根据子类的实现赋予不同的意义。
CLH队列 双向链表 每个Node节点装的是线程。
+———+ prev +——-+ +——-+
head | | <—— | | <—— | | tail
+———+ +——-+ +——-+
tryAcquire:
获取AQS的state,如果state==0,意味着没有线程获取锁