文章目录
INFO
作者: 编程界的小学生
日期: 2021/09/13
修订: 初版,未修订。2021/09/13
版权: 内部资料,切勿泄漏,违者必究。
一、什么是公平锁和非公平锁?
1、公平锁
比如A、B、C三个线程,A先抢到锁了,后来C比B先到一步,那么,A执行完会释放锁,释放锁后C会继续持有锁,而不是B,这就是公平,先进先出。
2、非公平锁
比如A、B、C三个线程,A先抢到锁了,那我不管你B和C谁先来的,只要B和C并发了,那就都抢锁,谁抢到算谁的,没有排队的概念。
二、公平锁和非公平锁的核心原理
1、公平锁
先抢锁,一个客户端抢到后,后面的客户端就进入队列排队。这问题来了:
- 抢锁成功后怎么存储?