Sobes.tech
Junior — Middle

U kojim situacijama dolazi do automatskog prebacivanja izvršavanja pri korišćenju gorutina?

sobes.tech АИ

Одговор од АИ

U Go-u, automatska promena izvršavanja između gorutina dešava se u sledećim situacijama:

  • Kada gorutina pozove funkciju koja blokira izvršavanje, na primer, čitanje iz kanala, pisanje u kanal ili sistemski poziv koji blokira nit.
  • Prilikom poziva funkcije runtime.Gosched(), koja eksplicitno prenosi kontrolu planeru da pređe na drugu gorutinu.
  • Kada gorutina završi, planer prebacuje na drugu spremnu gorutinu za izvršenje.

Go runtime sadrži planera koji raspoređuje izvršavanje gorutina na dostupne sistemske niti (M). Prebacivanje se dešava automatski, kako bi se efikasno koristio CPU i sprečilo blokiranje celokupnog izvršavanja programa dok se čeka na operacije ulaza/izlaza ili sinhronizaciju.