При блокирующем syscall runtime делает sysmon handoff: забирает P у текущего M и отдаёт его свободному или новому потоку. Горутина остаётся привязанной к заблокированному M. Когда syscall завершается, горутина пытается найти свободный P. Если P нет — горутина идёт в глобальную очередь. Это позволяет не блокировать выполнение остальных горутин.
Что происходит когда горутина делает syscall?
Senior
158 просмотровAFK Offer AI
Что выведет: switch 1 { case 1: fmt.Println("one"); case 2: fmt.Println("two") }?