Junior — Middle
Kunt u het concept van lichtgewicht threads en hun verschillen met gewone threads uitleggen?
sobes.tech AI
Antwoord van AI
Lichte threads (goroutines in Go) zijn een abstractie voor het gelijktijdig uitvoeren van code, die lichter en efficiënter in middelen is dan gewone systeemthreads.
Verschillen:
- Resources: goroutines gebruiken veel minder geheugen (meestal enkele kilobytes), terwijl een systeemthread veel meer vereist (meestal megabytes).
- Planning: goroutines worden gepland door de Go-planner binnen het proces, niet door het besturingssysteem, wat snelle wisselingen mogelijk maakt.
- Aanmaak: het starten van een goroutine is zeer snel en goedkoop, je kunt er duizenden of zelfs miljoenen tegelijk maken.
Voorbeeld van het maken van een goroutine:
func sayHello() {
fmt.Println("Hallo vanaf goroutine")
}
func main() {
go sayHello() // start de functie in een aparte goroutine
time.Sleep(time.Second) // wacht zodat de goroutine kan voltooien
}
Zo maken lichte threads het mogelijk om efficiënt gebruik te maken van parallelisme zonder grote overhead.