目录
自旋锁(spinlock)
自旋锁指尝试获取锁的线程获取不到不会立即阻塞,而是采用循环的方式去尝试获取锁。
这样做的好处是减少了线程频繁切换引起的性能损耗,但缺点是会增加cpu占用资源的时间。
自旋锁1.6以后默认开启,自旋次数默认是10次,它会记录上次是多久自旋后成功
我们在cas遇见过自旋锁,回顾下。CAS使用了“自旋锁+赋新值”的方式实现了比较并交换
在自旋锁的第一行代码中有var5=xxx,这是为了当第一次比较失败时,让期望值获取最新主存的值。
比较期望值和主存值的目的是为了每次工作线程把新值写给主存时,新值都是用最新的主存值计算而来的。