Starvation (голодание) — ситуация, когда горутина не может получить доступ к ресурсу, потому что другие горутины постоянно его захватывают. Горутина «голодает» — формально не заблокирована, но не продвигается.
var mu sync.Mutex
// Горутина A в tight loop: Lock → быстрая работа → Unlock → Lock
// Горутина B ждёт Lock, но A успевает перезахватить раньше
В Go sync.Mutex с версии 1.9 имеет starvation mode: если горутина ждёт мьютекс > 1мс, мьютекс переключается в справедливый режим — передаёт владение первому ожидающему в очереди (FIFO). Это решает проблему, но снижает пропускную способность.