并发JavaJava 并发锁
- 分类
- Java 并发
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/28 21:25
答案
悲观锁就是从悲观的角度出发,认为线程对共享资源的每一次操作都会被其他线程影响,所以每一次操作都要进行加锁,并且其他线程需要阻塞等到上一个持有锁的线程释放了之后才能去抢夺锁。悲观锁适用于多写的场景,能够避免频繁的失败导致CPU空转。 而乐观锁就是从乐观的角度出发,认为线程对共享资源的每一次操作都是安全的,不会被影响,所以不需要加锁,只需要进行一定的校验即可,常用的有版本号机制和CAS。乐观锁通常用于多读的场景,避免频繁加锁降低性能,提高了系统的吞吐量。
相关题目(5)
Java 并发并发JavaJava 并发锁
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
有哪些支持并发的集合?共源 1
Java 并发并发JavaJava 并发
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(并发).md
knowledge_noteQuestion 34: 什么是乐观锁和悲观锁?
Source answer: 悲观锁就是从悲观的角度出发,认为线程对共享资源的每一次操作都会被其他线程影响,所以每一次操作都要进行加锁,并且其他线程需要阻塞等到上一个持有锁的线程释放了之后才能去抢夺锁。悲观锁适用于多写的场景,能够避免频繁的失败导致CPU空转。 而乐观锁就是从乐观的角度出发,认为线程对共享资源的每一次操作都是安全的,不会被影响,所以不需要加锁,只需要进行一定的校验即可,常用的有版本号机制和CAS。乐观锁通常用于多读的场景,避免频繁加锁降低性能,提高了系统的吞吐量。
Reviewed answer: 悲观锁假设共享资源竞争激烈,每次操作都先加锁,适合写多场景;乐观锁假设冲突较少,不直接加锁,通过版本号或 CAS 校验更新,适合读多场景,吞吐量更高。