Как происходит preemption горутин в Go?

Senior
102 просмотров
AFK Offer AI

С Go 1.14 используется asynchronous preemption. Scheduler шлёт сигнал SIGURG потоку, тот прерывает выполнение горутины в safe point. До 1.14 preemption была только кооперативной — в вызовах функций через проверку stackguard. Без preemption tight loop без вызовов мог заблокировать весь P навсегда.

Следующий вопрос

Как спроектировать load balancer на Go?