若在释放锁的时候总是没有新的兔子来打扰,则非公平锁等于公平锁;
若释放锁的时候,正好一个线程请求获得锁,而此时位于队列头的线程还没有被唤醒(因为线程上下文切换是需要不少开销的),此时后来的线程则优先获得锁,成功打破公平,成为非公平锁;
其实对于非公平锁,只要线程进入了等待队列,队列里面依然是FIFO的原则,跟公平锁的顺序是一样的。因为公平锁与非公平锁的release()部分代码是共用AQS的代码。