SpinLock和ReentrantLock的区别

来源:5-8 可重入锁的用法

Kevin7012055

2021-01-21

老师您好:

最近看到这样一段代码

putMessageLock.lock(); //spin or ReentrantLock ,depending on store config

自己实现的spinlock自旋锁和reentrantlock都是cas操作吧?为什么要分出来这个呢?

写回答

1回答

悟空

2021-01-21

ReentrantLock不是自旋,它内部是利用AQS,抢不到锁的话会休眠,但是SpinLock会一直抢锁

0
1
Kevin7012055
非常感谢!时间长了忘记了 获取state是cas,队列是LockSupport.park()
2021-01-21
共1条回复

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程