公平lock和非公平lock的区别
可以看到区别在于,在lock时和tryAquire时,非公平锁不会去管队列中有没有线程在排队,直接尝试去获取锁,失败之后就和公平锁一样,乖乖去排队。
也就是说发生竞争的场景在于,尚未入队的线程之间和刚被unpark的之后的线程之间的竞争
可以看到区别在于,在lock时和tryAquire时,非公平锁不会去管队列中有没有线程在排队,直接尝试去获取锁,失败之后就和公平锁一样,乖乖去排队。
也就是说发生竞争的场景在于,尚未入队的线程之间和刚被unpark的之后的线程之间的竞争