Senior
რა არის გორუტინა? როგორ არის მოწყობილი?
sobes.tech AI
პასუხი AI-სგან
Go ენის გორუტინა მსუბუქი შესრულების ნაკადი არის. სისტემის ნაკადებისგან განსხვავებით, გორუტინები მართავს Go-ის რანটাইმი და აქვთ ძალიან პატარა სტეკი (დაიწყება რამდენიმე კილობაიტიდან და შეიძლება დინამიურად გაიზარდოს). ეს საშუალებას აძლევს ერთდროულად გამოაცხადოთ ასობით ათასი გორუტინა დაბალი ხარჯებით.
გორუტინას მოწყობა:
- გორუტინის შექმნისას (
goოპერატორით), Go-ის გეგმარებელი მას აყენებს მზადყოფნის რიგში. - Go-ის რანটাইმი იყენებს M:N გეგმარებას: M სისტემის ნაკადი (OS ნაკადები) მართავს N გორუტინას.
- გორუტინები გადართავენ კონტექსტს რანটাইმის დონეზე, რაც უფრო სწრაფია, ვიდრე სისტემის ნაკადების გადართვა.
- თითოეული ნაკადი (M) შეუძლია რამდენიმე გორუტინა (N) შეასრულოს, გადართვით მათ შორის ბლოკირებების ან საჭიროების შემთხვევაში.
გორუტინის შექმნის მაგალითი:
func sayHello() {
fmt.Println("გამარჯობა გორუტინიდან")
}
func main() {
go sayHello() // გორუტინის დაწყება
time.Sleep(time.Second) // ველით, რომ გორუტინა შესრულდეს
}