含义:所谓公平就是每个线程获取锁的机会是相同的,不公平就是不相同
public static void main(String[] args) {
Lock lock=new ReentrantLock(true);
lock.lock();
try{
//业务代码
}finally {
lock.unlock();
}
}
//ReentrantLock若不指定构造参数,默认就是不公平锁,指定为true的话就是公平锁,否则就是不公平锁
不同点:公平锁可以保证每个线程都可执行到,但是cpu上下文切换,会造成一定的性能损耗,但是非公平锁,会选择最优的性能,尽量减少了cpu的切换频率,也就是减少了性能损耗