Comprendiendo Goroutines y Concurrencia en Go

Descubre cómo Go aprovecha goroutines, concurrencia y el planificador G M P para ofrecer eficiencia en sistemas multicore. Contacta a Q2BSTUDIO para desarrollar software a medida y soluciones en inteligencia artificial, ciberseguridad y servicios cloud.

16 ago 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Entendiendo goroutines, concurrencia y el planificador en Go: este artículo explica de forma clara qué ocurre cuando lanzamos goroutines y cómo el runtime de Go aprovecha procesadores multicore para ofrecer concurrencia y, cuando es posible, paralelismo.

Concurrency vs Parallelism: la concurrencia es la capacidad de estructurar un programa como tareas que progresan de forma independiente; no siempre se ejecutan al mismo tiempo pero avanzan sin bloquear el diseño global. El paralelismo implica la ejecución simultánea real de varias tareas sobre hardware que lo permite.

Goroutine: una goroutine es un hilo de ejecución ligero gestionado por el usuario dentro del runtime de Go. A diferencia de un hilo del sistema operativo, las goroutines son muy baratas de crear, con stacks iniciales pequeños, y pueden escalar a millones sin agotar el sistema. Para lanzar una goroutine basta con escribir go doWork() y el scheduler de Go se encarga de ejecutarla concurrentemente.

Modelo del scheduler de Go: G M P. Go usa un planificador M:N. Muchas goroutines G se multiplexan sobre un número menor de hilos del sistema M, coordinados por procesadores lógicos P. Componentes: G para goroutine, M para máquina o hilo del sistema operativo, y P para procesador lógico, el contexto necesario para ejecutar código Go. Solo un M con un P asociado puede ejecutar código Go en un instante dado.

Cómo trabajan juntos: cada P mantiene una cola local de goroutines listas para ejecutar. Un P se adjunta a lo sumo a un M al tiempo. Un M ejecuta una sola goroutine G a la vez. Si una goroutine bloquea por I O u otra operación, el M puede desprenderse y el P se reasigna para que otro M continúe la ejecución.

Al iniciar muchas goroutines: si lanzamos, por ejemplo, miles o cientos de miles de goroutines, Go crea varios P según GOMAXPROCS y el runtime crea M suficientes para ejecutar esas P. Las goroutines se distribuyen en las colas locales de los P y se ejecutan una a una en cada P usando un M. El scheduler gestiona finalizaciones y bloqueos y selecciona la siguiente goroutine disponible.

Cambio de contexto y concurrencia: dado que el número de goroutines suele ser mayor que el número de P o hilos CPU, Go usa cambio de contexto para simular ejecución concurrente. Cuando una goroutine bloquea se pausa, se guarda su estado (program counter, stack pointer, etc.) y el P elige otra goroutine ejecutable. Mucho de esto ocurre en espacio de usuario, lo que evita llamadas al sistema costosas y hace el cambio rápido.

Ejemplo con un solo núcleo: aunque solo haya un núcleo físico, el scheduler de Go alterna rápidamente entre goroutines, creando la ilusión de concurrencia. Esto combina planificación cooperativa y planificación preventiva para permitir que múltiples goroutines progresen en una sola CPU.

Relaciones y límites: P a M es 1 a 1 en un momento dado; un P se asigna a un M y si el M bloquea el scheduler busca otro M libre. P a G es 1 a muchos, un P mantiene una cola con muchas G pero ejecuta una por vez. M a G también es 1 a 1 en ejecución, un M ejecuta la goroutine que el P le entrega.

Work stealing y cola global: si la cola local de un P queda vacía puede robar trabajo de la cola de otro P o tomar tareas de una cola global de respaldo. Esto equilibra la carga y mantiene ocupados los procesadores para que las goroutines se distribuyan de forma eficiente.

Paralelismo en CPUs multicore: en una máquina con 8 cores y 16 hilos lógicos, GOMAXPROCS suele establecerse en 16 por defecto, lo que permite hasta 16 goroutines ejecutándose en paralelo, una por hilo lógico. El resto de goroutines se planifican cooperativamente, por lo que los programas Go aprovechan tanto el paralelismo real como la concurrencia en sistemas más limitados.

Herramientas y diagnóstico: para profundizar se pueden usar runtime/trace, pprof y go tool trace para visualizar comportamientos de goroutines durante la ejecución y entender cuellos de botella, bloqueos y eficiencia del scheduler.

Aplicaciones reales y Q2BSTUDIO: en Q2BSTUDIO somos especialistas en desarrollo de software a medida y aplicaciones a medida que aprovechan la concurrencia y el rendimiento de Go cuando corresponde. Ofrecemos soluciones de software a medida, inteligencia artificial e ia para empresas, agentes IA, servicios inteligencia de negocio y power bi para visualización avanzada. También proporcionamos ciberseguridad, servicios cloud aws y azure e integración de modelos de inteligencia artificial en aplicaciones empresariales.

Por qué elegir Q2BSTUDIO: diseñamos arquitecturas escalables y seguras que usan las mejores prácticas en concurrencia y paralelismo, desarrollamos software a medida optimizado para microservicios y aplicaciones de alto rendimiento, implementamos soluciones de inteligencia artificial y agentes IA para automatizar procesos y ofrecer insights a través de servicios inteligencia de negocio. Nuestras capacidades en ciberseguridad y servicios cloud aws y azure aseguran despliegues fiables y protegidos en entornos cloud.

Resumen y llamada a la acción: comprender cómo Go gestiona las goroutines, el scheduler G M P, el equilibrio de colas y la ejecución en múltiples núcleos ayuda a diseñar sistemas más eficientes. Si quieres que tu proyecto aproveche concurrencia real, paralelismo y capacidades de inteligencia artificial, contacta con Q2BSTUDIO para desarrollar software a medida, aplicaciones a medida y soluciones avanzadas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, agentes IA y power bi.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.