Principal
Mi a goroutine a Go-ban? Miben különbözik egy goroutine egy operációs rendszer szálától?
sobes.tech MI
Válasz az MI-től
A goroutine-ok a Go-ban könnyű végrehajtási szálak, amelyeket a Go futásideje kezel, lehetővé téve funkciók párhuzamos futtatását.
A goroutine és az OS-szál közötti különbségek:
- Könnyűség: a goroutine-ok sokkal kevesebb memóriát foglalnak (általában néhány kilobájt), míg az OS-szálak jelentősen nagyobbak.
- Ütemezés: a goroutine-okat a Go ütemező tervezi a folyamaton belül, nem az OS, ez gyorsabb és hatékonyabb kontextusváltást tesz lehetővé.
- Skálázhatóság: ezer vagy akár millió goroutine-t indíthatunk egyszerre, ami az OS-szálakkal nem lehetséges erőforrás-korlátok miatt.
Goroutine létrehozásának példája:
func sayHello() {
fmt.Println("Helló a goroutine-ból")
}
func main() {
go sayHello() // goroutine indítása
time.Sleep(time.Second) // várunk, hogy a goroutine befejeződjön
}