Sobes.tech
Junior — Middle

Yüngül çəkili iş parçaları anlayışını və onların adi iş parçalarından fərqlərini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Yüngül axınlar (Go-da goroutine-lər) kodun paralel icrası üçün bir abstraksiyadır və adi sistem axınlarından (threads) daha yüngül və resurslara daha səmərəli olur.

Fərqlər:

  • Resurslar: goroutine-lər çox az yaddaş tutar (adətən bir neçə kilobayt), sistem axını isə çox daha çox (adətən megabaytlar) tələb edir.
  • Planlaşdırma: goroutine-lər Go-nun planlayıcısı tərəfindən proses daxilində planlaşdırılır, əməliyyat sistemindən deyil, bu da onların arasında sürətli keçidə imkan verir.
  • Yaradıcılıq: goroutine-in başlaması çox sürətli və ucuzdur, minlərlə və hətta milyonlarla eyni vaxtda yaradıla bilər.

Goroutine yaratma nümunəsi:

func sayHello() {
    fmt.Println("Goroutine-dən salam")
}

func main() {
    go sayHello() // funksiyanı ayrı bir goroutine-də işə salır
    time.Sleep(time.Second) // goroutine-in tamamlanması üçün gözləyir
}

Beləliklə, yüngül axınlar böyük əlavə xərclər olmadan paralelliyi səmərəli istifadə etməyə imkan verir.