1、介绍
2、工作机制
多个线程争抢共享变量state抢到的改成1,原理是使用了CAS技术,其他线程发现state为1则会到先入先出的双向队列中等待。
3、非公平锁/公平锁
当线程0执行完了,并将state改回了0,这时队列里最久的一个线程开始争抢state,同时新来的一个线程5也一起参与争抢。这时队列里等待的线程相对来说不公平。这种情况就是非公平锁。如果没有新来的线程则队列中有序等待的线程之间为根据顺序竞争,则是公平锁。
4、实现类
1、ReentrantLock
1、介绍
2、底层原理
公平锁/非公平锁都是继承AQS实现的。
2、ReentrantReadWriteLock
大量的读操作的时候使用。
5、lock与synchronized区别