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 de lectura • Equip Q2BSTUDIO

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.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.