1.公平锁是指多个线程按照申请顺序来获取锁
-
非公平锁是指多个线程获取所得顺序并不是按照申请锁顺序,有可能后申请的线程比先申请的线程优先获取锁,有可能,会造成优先级反转或者饥饿现象.
-
对于Java ReentrantLock而言,通过构造函数指定该锁是否为公平锁,默认是非公平锁.非公平锁的有点在于吞吐量比公平锁大.
4.对于Synchronized而言,也是一种非公平锁,由于其不像ReentrantLock是通过AQS来实现的线程调度,所以并没有任何办法使其变成公平锁
1.公平锁是指多个线程按照申请顺序来获取锁
非公平锁是指多个线程获取所得顺序并不是按照申请锁顺序,有可能后申请的线程比先申请的线程优先获取锁,有可能,会造成优先级反转或者饥饿现象.
对于Java ReentrantLock而言,通过构造函数指定该锁是否为公平锁,默认是非公平锁.非公平锁的有点在于吞吐量比公平锁大.
4.对于Synchronized而言,也是一种非公平锁,由于其不像ReentrantLock是通过AQS来实现的线程调度,所以并没有任何办法使其变成公平锁