go的锁
并发操作对数据结果产生影响的本质
cas
正常状态
自旋多次,自旋获取锁失败后进入阻塞状态
锁饥饿
当前协程等待锁的时间超过1ms,切换为饥饿模式
饥饿模式下,不自旋,新来的协程直接sema休眠
被唤醒的协程直接获取锁
没有协程在队列中等待的时候,恢复为正常状态
go的锁
http://example.com/2024/02/29/go的锁/
并发操作对数据结果产生影响的本质
cas
正常状态
自旋多次,自旋获取锁失败后进入阻塞状态
锁饥饿
当前协程等待锁的时间超过1ms,切换为饥饿模式
饥饿模式下,不自旋,新来的协程直接sema休眠
被唤醒的协程直接获取锁
没有协程在队列中等待的时候,恢复为正常状态