重量级锁为什么需要自旋操作?
1 个回答
重新审视自己,什么使你快乐,什么就是眼下最珍贵。东方朔因为那些处于ContetionList、EntryList、WaitSet中的线程均处于阻塞状态,阻塞操作由操作系统完成(在Linxu下通过pthreadmutexlock函数)。线程被阻塞后便进入内核(Linux)调度状态,这个会导致系统在用户态与内核态之间来回切换,严重影响锁的性能。如果同步块中代码比较少,执行比较快的话,后进来的线程先自旋获取锁,先执行,而不进入阻塞状态,减少额外的开销,可以提高系统吞吐量。发布于 2022-02-10 19:19 •IP属地 湖北举报评论收藏
公众号进入网站体验更佳

