Go

Goroutines básicas

Goroutines, palabra clave go, sync.WaitGroup, runtime.GOMAXPROCS, goroutine leaks

20 preguntas de entrevista·
Junior
1

¿Qué es una goroutine en Go?

Respuesta

Una goroutine es una función que se ejecuta de forma concurrente con otras funciones, gestionada por el runtime de Go en lugar del OS. Es extremadamente ligera (unos pocos KB de stack inicial) comparada con un thread del OS (varios MB). El scheduler de Go puede multiplexar miles o incluso millones de goroutines sobre un número limitado de threads del OS, haciendo que la concurrencia sea muy accesible en Go.

2

¿Cómo iniciar una nueva goroutine en Go?

Respuesta

La palabra clave go seguida de una llamada a función inicia una nueva goroutine. Por ejemplo, 'go myFunction()' o 'go func() { ... }()' para una función anónima. La goroutine se ejecuta inmediatamente en paralelo con el código que la invoca. Atención: la función principal no espera automáticamente a que terminen las goroutines lanzadas.

3

¿Cuál es la principal diferencia entre una goroutine y un thread OS?

Respuesta

Una goroutine consume alrededor de 2 KB de stack inicial, mientras que un thread OS suele requerir 1-2 MB. El runtime Go gestiona el scheduling de las goroutines en espacio de usuario (M:N scheduling), multiplexando miles de goroutines sobre unos pocos threads OS. Esto permite crear millones de goroutines sin sobrecargar el sistema, a diferencia de los threads OS que están limitados por los recursos.

4

¿Qué sucede si el programa principal termina antes de que una goroutine finalice?

5

¿Cómo gestiona el runtime Go la ejecución de las goroutines?

+17 preguntas de entrevista

Domina Go para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis