惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
V
V2EX
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
The Cloudflare Blog
T
Tailwind CSS Blog
H
Help Net Security
腾讯CDC
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
Stack Overflow Blog
Stack Overflow Blog
D
DataBreaches.Net
C
Check Point Blog
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
¿Por qué las Goroutines son el "superpoder" que otros len...
Juan Carlos · 2026-05-11 · via DEV Community

Si alguna vez has sentido que la concurrencia en C o Java es como intentar hacer malabares con diez motosierras encendidas, no estás solo. Es peligroso, agotador y, si intentas añadir una más, todo el sistema colapsa bajo el peso. Go cambió el juego: nos dijo que podíamos soltar las motosierras y empezar a lanzar pelotas de tenis. Son tan ligeras que puedes tener miles en el aire al mismo tiempo, y el Go Scheduler es el malabarista experto que se encarga de coordinarlas para que ninguna toque el suelo.

Las goroutines no son magia, son ingeniería de alta eficiencia. Al separar la "intención de hacer algo" (Goroutine) del "recurso para hacerlo" (Hilo de SO), Go nos permite escalar a millones de procesos concurrentes con una fracción del costo de memoria y CPU que requieren los lenguajes tradicionales.

La Analogía Definitiva: El Restaurante Inteligente

Imagina un restaurante con 1,000 mesas. En el mundo de Java "clásico", el dueño cree que cada mesa necesita su propio mesero personal parado al lado todo el tiempo.

El problema: 1,000 mesas = 1,000 meseros. Sus sueldos te dejan en la quiebra (RAM) y los meseros chocan entre sí en los pasillos (Context Switch).

En Go, el restaurante funciona distinto. Tienes 1,000 clientes (Goroutines), pero solo 4 meseros (Hilos de SO). Los clientes se sientan, y los meseros van rotando. Si un cliente está leyendo el menú y no necesita nada, el mesero se va a otra mesa de inmediato. El "Maitre" (Go Scheduler) coordina este baile para que los meseros nunca estén parados.

natural_waiter_analogy_goroutines_1778478452995.png

El Mito del Hilo Único: Entendiendo GOMAXPROCS

A veces se confunde a Go con lenguajes como Node.js, pensando que todo corre en un solo hilo. Error. Go es un sistema multiprocesador por naturaleza.

Go utiliza una variable interna llamada GOMAXPROCS. Por defecto, Go crea tantos hilos de SO como núcleos lógicos tenga tu computadora.

  • Si tienes 8 núcleos, tienes 8 meseros trabajando en paralelo.
  • La magia es que esos 8 hilos pueden gestionar 1,000,000 de goroutines "turnándose" el trabajo de forma tan eficiente que parece que cada goroutine tiene su propio procesador.

Concurrencia vs Paralelismo: No son lo mismo

Este es el punto donde muchos desarrolladores "hacen clic". Rob Pike lo resumió mejor: "La concurrencia trata de gestionar muchas cosas a la vez; el paralelismo trata de hacer muchas cosas a la vez".

Concepto Lo que realmente es Analogía del Cocinero
Concurrencia Estructurar tu código en tareas independientes que pueden correr al mismo tiempo. Un cocinero picando cebolla, mirando la olla y contestando el teléfono.
Paralelismo Ejecutar tareas literalmente al mismo segundo. Dos cocineros trabajando hombro con hombro en la misma cocina.

Go te da ambos: Con las goroutines diseñas código concurrente, y si tienes varios núcleos, el runtime lo ejecuta de forma paralelo automáticamente.


Sabiduría de los Maestros (Insight Bibliográfico)

Para los que quieren bajar al metal, la literatura de Go nos da tres claves fundamentales:

  1. Work-Stealing (Katherine Cox-Buday): En su libro Concurrency in Go, explica que si un hilo de SO termina su trabajo, no se queda mirando al techo. "Roba" trabajo de las colas de otros hilos ocupados. Nada se desperdicia.
  2. Stacks Segmentados (Donovan & Kernighan): En The Go Programming Language, detallan cómo Go evita el "Stack Overflow". Mientras un hilo de SO de Java te pide 1MB sí o sí, una goroutine empieza con 2KB y crece como un acordeón según lo necesite.
  3. Project Loom y la competencia: Es fascinante notar que Java acaba de introducir los "Virtual Threads" en 2023 para intentar copiar este modelo que Go perfeccionó en 2009.

Visualizando el Flujo

modelo m:n de golang
Caption: El Scheduler de Go mapea tus miles de intenciones (G) hacia la potencia real de tu hardware (Cores).

Conclusión: El fin de la era de los hilos pesados

La verdadera revolución de Go no es técnica, es económica. Al hacer que las unidades de ejecución sean tan baratas (2KB y microsegundos de creación), Go te permite dejar de preocuparte por "cuántos hilos puedo crear" y empezar a enfocarte en "cómo estructuro mi lógica".

¿Estás listo para dejar de pagar "sueldos de mesero" por cada cliente y empezar a escalar de verdad?