四、谈谈对AQS的了解,AQS如何实现可重入锁?
1.AQS是一个java线程同步的框架。是jdk中很多锁的核心实现框架。
2.在AQS中,维护了一个信号量state和一个线程组成的双向链表队列。其中这个线程队列,就是用来给线程排队的,而state就像是一个红绿灯,用来控制线程排队或者放行的。在不同的场景下,有不用的意义。I
3.在可重入锁这个场景下,state就用来表示加锁的次数。0表示无锁,每加一次锁state就加1,释放锁state就减1。
1.AQS是一个java线程同步的框架。是jdk中很多锁的核心实现框架。
2.在AQS中,维护了一个信号量state和一个线程组成的双向链表队列。其中这个线程队列,就是用来给线程排队的,而state就像是一个红绿灯,用来控制线程排队或者放行的。在不同的场景下,有不用的意义。I
3.在可重入锁这个场景下,state就用来表示加锁的次数。0表示无锁,每加一次锁state就加1,释放锁state就减1。