Sobes.tech
Junior — Middle

U kojim slučajevima jedna gorutina završava izvršavanje i prenosi kontrolu drugoj?

sobes.tech АИ

Одговор од АИ

U Go, gorutina prestaje sa izvršavanjem i prenosi kontrolu na drugu gorutinu u sledećim slučajevima:

  • Kada gorutina eksplicitno pozove funkciju koja je blokira (npr. čitanje iz praznog kanala).
  • Kada se koristi ključna reč runtime.Gosched(), koja dobrovoljno prepušta procesor drugim gorutinama.
  • Kada gorutina završi svoju funkciju (vrati se iz funkcije), prestaje sa izvršavanjem.

Planer gorutina u Go automatski prebacuje izvršavanje između gorutina, obezbeđujući konkurentnost. Na primer, pri blokiranju na operacijama ulaza/izlaza ili čekanju na podatke iz kanala, trenutna gorutina se zaustavlja, a kontrola se prenosi na drugu.