校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > 锁的定义和分类
题目

什么是自适应自旋?

解答

同步对性能最大的影响是阻塞,挂起和恢复线程的操作都需要转入内核态完成。
许多应用上共享数据的锁定只会持续很短的时间,为了这段时间去挂起和恢复线程并不值得。
如果机器有多个处理器核心,我们可以让后面请求锁的线程稍等一会,但不放弃处理器的执行时间,看看持有锁的线程是否很快会释放锁。
为了让线程等待只需让线程执行一个忙循环,这项技术就是自旋锁。

自旋锁在 JDK1.4 就已引入,默认关闭,在 JDK6 中改为默认开启。自旋不能代替阻塞,虽然避免了线程切换开销,但要占用处理器时间,如果锁被占用的时间很短,自旋的效果就会非常好,反之只会白白消耗处理器资源。
如果自旋超过了限定的次数仍然没有成功获得锁,就应挂起线程,自旋默认限定次数是 10。

C 1条回复 评论
简书

简直是我梦想中的offer,好想去上班

发表于 2021-09-12 23:15:00
0 0