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.