一.公平锁
公平锁是指多个线程按照申请锁的顺序来获得锁,线程直接进入队列中排队,队列中的第一个线程才能获得锁
二.非公平锁
非公平锁是多个线程加锁时直接尝试获得锁,获取不到才会进入等待队列的队尾等待。但如果此时锁刚好可用,那么这个线程可以无需阻塞直接获取到锁,所以非公平锁有可能出现后申请锁的线程先获得锁的场景
三.示例
ReentranLock中默认使用非公平锁,也可以通过构造器显式指定公平锁
公平锁就是通过同步队列来实现多个线程按照申请锁的顺序来获取锁。非公平锁在加锁时不考虑排队等待情况,直接获取锁,所以可能出现后申请的线程先获得锁的情况