Sobes.tech
Junior — Middle

Aký je maximálny počet vlákien povolených v jednom procese?

sobes.tech AI

Odpoveď od AI

V Go je početok nití (goroutines) v jednom procese prakticky neobmedzený samotným jazykom — obmedzenie je dané zdrojmi operačného systému a dostupnou pamäťou.

Goroutine je ľahký vlákno, riadené runtime-om Go, a môže byť vytvorených desiatky a stovky tisíc bez podstatného zhoršenia výkonu.

Avšak systémové vlákna (OS vlákna), na ktorých bežia goroutines, sú obmedzené zdrojmi OS a nastaveniami (napríklad limity na počet vlákien v jadre OS).

Preto v jednom procese Go môže byť veľmi veľa goroutines, ale skutočný maximálny počet závisí od:

  • Dostupnej RAM
  • Obmedzení OS (napríklad ulimit v Linuxe)
  • Konfigurácie runtime-u (napríklad GOMAXPROCS)

Vo všeobecnosti platí, že limit na počet goroutines je pre väčšinu aplikácií veľmi vysoký a nepredstavuje úzke miesto.