公平锁和非公平锁是针对锁的获取方式而言的。
公平锁是指多个线程按照申请锁的顺序来获取锁,即先到先得的原则。当线程A释放锁后,线程B、C、D依次获取锁,如果此时线程E申请锁,则它需要等待B、C、D依次获取到锁并释放锁后才能获取锁。
非公平锁是指多个线程获取锁的顺序是随机的,不保证公平性。当线程A释放锁后,线程B、C、D等线程都可以通过竞争获取到锁,而此时线程E也可以通过竞争获取到锁。
在实际应用中,公平锁可以避免饥饿现象,但是由于需要维护线程队列,因此效率相对较低。而非公平锁由于不需要维护线程队列,因此效率相对较高,但是可能会导致某些线程长时间无法获取锁。
THE END
暂无评论内容