模型服务连接失败

公平锁和非公平锁有什么区别?

并发JavaJava 并发
分类
Java 并发
难度
未设置
来源数
1
更新时间
2026/03/28 21:25

答案

公平锁就是按照申请的先后顺序来获得锁,先申请的线程先得到锁,从而保证了时间上的有序,但是会导致上下文切换频繁,降低性能。 非公平锁就是锁释放之后不按照顺序,而是随机抢夺,因此后申请的线程可能会先得到锁,这样性能更好,但可能导致某些线程一直得不到锁。

相关题目(5)

Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发

元信息

审核状态: active
关联来源: 1

来源面经题(0)

这道题目前没有手动沉淀的面经题来源。

来源(1)

Java八股(并发).md

knowledge_note
Question 55: 公平锁和非公平锁有什么区别? Source answer: 公平锁就是按照申请的先后顺序来获得锁,先申请的线程先得到锁,从而保证了时间上的有序,但是会导致上下文切换频繁,降低性能。 非公平锁就是锁释放之后不按照顺序,而是随机抢夺,因此后申请的线程可能会先得到锁,这样性能更好,但可能导致某些线程一直得不到锁。 Reviewed answer: 公平锁按申请顺序获取锁,能保证先来先得,但会增加上下文切换、降低吞吐量;非公平锁允许插队抢占,性能通常更好,但可能造成线程饥饿。