
Goroutines básicas
Goroutines, palabra clave go, sync.WaitGroup, runtime.GOMAXPROCS, goroutine leaks
1¿Qué es una goroutine en Go?
¿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?
¿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?
¿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.
¿Qué sucede si el programa principal termina antes de que una goroutine finalice?
¿Cómo gestiona el runtime Go la ejecución de las goroutines?
+17 preguntas de entrevista
Otros temas de entrevista Go
Fundamentos de Go
Estructuras de datos en Go
Interfaces en Go
Manejo de errores
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificación JSON
Database/SQL
Paquete context
Testing
Patrones de concurrencia
Primitivas de sincronización
Frameworks web de Go
Diseño de API REST
gRPC
Reflection
Gestión de memoria
Optimización del rendimiento
Generics
Go Design Patterns
Microservices
Seguridad y autenticación
Docker & Containerization
Kubernetes Basics
Go Avanzado
Desarrollo de CLI
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