Junior — Middle
Qaysi hollarda bir gorutina bajarib, boshqasiga boshqaruvni o'tkazadi?
sobes.tech AI
AIdan javob
Go tilida, gorutina quyidagi holatlarda bajarilishni to'xtatadi va boshqaruvni boshqa gorutina'ga o'tkazadi:
- Gorutina ochiqchasiga uni bloklaydigan funksiyani chaqirganda (masalan, bo'sh kanalni o'qish).
runtime.Gosched()kalit so'zidan foydalanilganda, bu volontar tarzda protsessorni boshqa gorutinalarga beradi.- Gorutina funksiyasini tugatganda (funksiyadan qaytganda), u bajarilishni to'xtatadi.
Go planlashtiruvchisi avtomatik ravishda gorutinalar o'rtasida o'tishni ta'minlab, ko'proq ishlash imkonini yaratadi. Masalan, kirish/chiqish operatsiyalarida yoki kanal orqali ma'lumot kutishda, joriy gorutina to'xtatiladi va boshqaruv boshqa gorutina'ga o'tkaziladi.