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.