Sobes.tech
Junior — Middle

Šta se dešava kada operacija planera prebacuje gorutinu iz globalne u lokalnu red?

sobes.tech АИ

Одговор од АИ

У планеру Go (runtime scheduler), goroutine-ји се распоређују међу више радних нити (P — процесор). Глобална редица садржи goroutine-је који чекају на извршење, а сваки радни нит има своју локалну редицу.

Када планер пренесе goroutine из глобалне редице у локалну, догађа се следеће:

  • Goroutine се извлачи из заједничке глобалне редице, која је доступна свим нитима.
  • Она се поставља у локалну редицу одређеног радног нити (P), који ће је извршити.
  • Ово смањује конкуренцију за приступ глобалној редици, јер локална редица се обрађује од стране једног нити.
  • Овај механизам побољшава перформансе кроз локалност података и смањење блокирања.

Стога, пренос goroutine из глобалне у локалну редицу представља оптимизацију планера за ефикасно расподељивање задатака међу нитима и смањење трошкова синхронизације.