Junior — Middle
Go rejalashtiruvchisiga kontekstni boshqa gorutina bilan almashtirishni majburlash uchun qanday qilish mumkin?
sobes.tech AI
AIdan javob
Go tilida, goroutine'lar orasida kontekstni o'zgartirish uchun runtime.Gosched() funktsiyasi ishlatiladi. Bu planlashtiruvchiga hozirgi goroutine boshqa goroutine'lar uchun protsessorni bo'shatishga tayyor ekanligini bildiradi va ularning bajarilishini ta'minlaydi.
Foydalanish misoli:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine 1 -", i)
runtime.Gosched() // planlashtiruvchiga bo'shatish
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Asosiy goroutine -", i)
runtime.Gosched() // planlashtiruvchiga bo'shatish
}
}
Shu tarzda, runtime.Gosched() boshqa goroutine'larning bajarilishini aniq ravishda ta'minlash imkonini beradi, hozirgi goroutine'ni bloklamasdan.