一些AQS相关的知识

状态变量state被volatile修饰,对其操作的方法包括tryAcquire、tryRelease等,都是通过CAS。

申请公平锁的线程,会先判断当前队列没有前驱节点(也就是没有线程在等待)时才会CAS修改同步状态变量。而申请非公平锁的线程,则会无视队列,直接CAS抢锁,如果不成功,再进入到队列等待唤醒。1

而对于队列中线程的唤醒机制,尚未深入研究,可再研究AQS的非公平锁与同步队列的FIFO冲突吗?AQS之线程的阻塞和唤醒分析
等文章


  1. 理解ReentrantLock的公平锁和非公平锁 ↩︎

猜你喜欢

转载自blog.csdn.net/qq_23204557/article/details/115258859
今日推荐