公平锁
多个线程按照申请锁的顺序来获取锁。
非公平锁
多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。
- 公平锁的作用就是严格按照线程启动的顺序来执行的,不允许其他线程插队执行的;而非公平锁是允许插队的。
- 默认情况下 ReentrantLock 和 synchronized 都是非公平锁。ReentrantLock 可以设置成公平锁
公平锁就是排队上厕所拉,非公平锁是插队上厕所拉。
多个线程按照申请锁的顺序来获取锁。
多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。
公平锁就是排队上厕所拉,非公平锁是插队上厕所拉。