作者:目目目目目目目目目目目目 | 来源:互联网 | 2023-06-03 17:19
状态变量state被volatile修饰,对其操作的方法包括tryAcquire、tryRelease等,都是通过CAS。
申请公平锁的线程,会先判断当前队列没有前驱节点(也就是没有线程在等待)时才会CAS修改同步状态变量。而申请非公平锁的线程,则会无视队列,直接CAS抢锁,如果不成功,再进入到队列等待唤醒。
而对于队列中线程的唤醒机制,尚未深入研究,可再研究AQS的非公平锁与同步队列的FIFO冲突吗?,AQS之线程的阻塞和唤醒分析
等文章