Sobes.tech
Junior

Ի՞նչ են գորուտինները։

sobes.tech AI

Պատասխան AI-ից

Հ Lightweight գործարկման թելեր, որոնք կառավարում է Go գործարկման միջավայրը: Դրանք ստեղծվում են go բանալի բառով՝ նախքան ֆունկցիայի կանչելը:

Հիմնական հատկանիշներ՝

  • Փոքր հիշողության սպառում: Գործարկման թելը սկսվում է փոքր ստեկով (հաճախ 2 ԿԲ), որը կարող է դինամիկ կերպով մեծանալ կամ փոքրանալ:
  • Արագ ստեղծում: Գործարկման թելը ստեղծելը շատ ավելի արագ է, քան համակարգային թել ստեղծելը:
  • Մուլտիպլեքսավորում համակարգային թելերի վրա: Շատ գործարկման թելեր կարող են մուլտիպլեքսավորվել ավելի քիչ համակարգային թելերի վրա Go պլանավորողի կողմից:
  • Կոոպերատիվ պլանավորում: Գործարկման թելերը չեն խզվում կանխամտածված; նրանք կամավոր փոխանցում են վերահսկողությունը պլանավորողին (օրինակ, բլոկավորող կանչերի կամ բացահայտ 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 փաթեթը Մյուտեքսներ, օՍ սեմաֆորներ