Sobes.tech
Junior

რა არის გორუტინები?

sobes.tech AI

პასუხი AI-სგან

სუსტი შესრულების ნაკადი, რომელსაც მართავს Go-ის შესრულების გარემო. ისინი შექმნილია სიტყვა go-ს გამოყენებით ფუნქციის გამოძახებამდე.

ძირითადი მახასიათებლები:

  • მცირე მეხსიერების მოხმარება: გორუტინა იწყება მცირე სტეკით (საშუალოდ 2 კბ), რომელიც შეიძლება დინამიურად გაიზარდოს ან შემცირდეს.
  • სწრაფი შექმნა: გორუტინის შექმნა ბევრად უფრო სწრაფია, ვიდრე სისტემური ნაკადის შექმნა.
  • მულტიპლექსირება სისტემურ ნაკადებზე: ბევრი გორუტინა შეიძლება მულტიპლექსირდეს ნაკლებ სისტემურ ნაკადზე Go-ის დაგეგმვის მიერ.
  • კოოპერატიული დაგეგმვა: გორუტინები არ არიან პრეემპტივულად გაჩერებული; ისინი vrijwillულად გადმოსცემენ კონტროლს დაგეგმვაზე (მაგ., ბლოკირებადი ზარები ან გამარტივებული runtime.Gosched()-ის ზარები).

შექმნის მაგალითი:

package main

import (
	"fmt"
	"time"
)

func sayHello() {
	fmt.Println("გამარჯობა გორუტინიდან!")
}

func main() {
	go sayHello() // გამოძახება გორუტინად
	fmt.Println("გამარჯობა მთავარი ფუნქციიდან!")
	time.Sleep(1 * time.Second) // რათა მთავარი ფუნქცია არ დასრულდეს ადრე გორუტინაზე
}

შედარება ნაკადებთან:

მახასიათებელი Go გორუტინები ოპერაციული სისტემის ნაკადები
მართვა Go-ის შესრულების გარემო ოპერაციული სისტემა
მეხსიერების მოხმარება დაბალი, დინამიური სტეკი მაღალი, ფიქსირებული სტეკი
შექმნა სწრაფი ნელი
დაგეგმვა კოოპერატიული პრეემპტიული
სინქრონიზაცია არხები, sync პაკეტი mutex-ები, სემაფორები OS-დან