写这个文章的时候让我想起了让子弹飞的一个台词 公平,公平,还是tmd公平! [TOC] 什么是公平和非公平 首先,我们来看下什么是公平锁和非公平锁。 公平锁指的是按照线程请求的顺序,来分配锁; 非公平锁指的是不完全按照请求的顺序,在一定情况下,可以允许插队。但需要注意这里的非公平并不是指完全的随机,不是说线程可以任意插队,而是仅仅“在合适的时机”插队。 那么什么时候是合适的时机呢? 假设当前线程在请求获取锁的时候,恰巧前一个持有锁的线程释放了这把锁,那么当前申请锁的线程就可以不顾已经等待的线程而选择立刻插队。但是如果当前线程请求的时候,前一个线程并没有在那一时刻释放锁,那么当前线程还是一...