选填考了一堆计网相关的八股,已晕。 Mutex 的正常模式和饥饿模式的区别,是为了解决什么问题? Mutex 的正常模式采用非严格公平策略,新来的 goroutine 有机会直接竞争锁,这样可以减少上下文切换,提高整体吞吐量,但可能导致部分等待时间较长的 goroutine 一直抢不到锁而发生饥饿;因此 Go 在检测到某个 goroutine 等待时间超过阈值(约1ms)时,会切换到饥饿模式,此时锁会直接交给等待队列中的最老 goroutine,以保证公平性,防止长期得不到锁的问题,当竞争压力下降后再恢复正常模式,从而在性能和公平之间取得平衡。 GC 过程中的写屏障是什么,作用是什么?...