图解:Go Mutex
Mutex 可能处于两种不同的模式:正常模式和饥饿模式。在正常模式下,新来的G会尝试自旋获取锁,如果自旋获取失败,则会按照FIFO的顺序排队获取锁。当Mutex被释放,会唤醒等待队列中第一个等待者G,它需要和新来的 G们竞争Mutex的使用权。而新来的G会更有优势,它们已经在CPU上运行且它们的数量更多。因此一个刚被唤醒的等待者很大概率获取不到锁,在这种情况下,它会被放置到等待队列的队首。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xht5oJlA-167029119359
原创
2022-12-06 09:47:59 ·
540 阅读 ·
0 评论