Construye aplicaciones concurrentes en Go con confianza. Aprende patrones listos para producción para goroutines, canales, pools de workers y apagado gradual para evitar condiciones de carrera y fugas de recursos.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“go-concurrency-patterns”。 Crear un worker pool con 3 workers que procese trabajos desde un canal
预期结果:
Aquí hay una implementación de worker pool con 3 workers que procesa trabajos concurrentemente y recolecta resultados a través de un canal de resultados con sincronización adecuada usando sync.WaitGroup.
正在使用“go-concurrency-patterns”。 Muéstrame cómo usar errgroup para solicitudes HTTP concurrentes
预期结果:
Este ejemplo demuestra golang.org/x/sync/errgroup para obtener múltiples URLs concurrentemente donde el primer error cancela todas las solicitudes pendientes a través de propagación de contexto.
正在使用“go-concurrency-patterns”。 Implementar un semáforo para limitar operaciones concurrentes
预期结果:
Proporciono dos enfoques de semáforo: usando golang.org/x/sync/semaphore.Weighted para semáforos con peso y un semáforo basado en canales con struct{} para limitación simple de tasa.
安全审计
安全All 44 static analysis findings are false positives from markdown-enclosed Go code examples. The skill contains legitimate educational content about Go concurrency patterns with no executable code or security risks.
质量评分
你能构建什么
Construir microservicios concurrentes
Crea servicios Go escalables con worker pools que manejan múltiples solicitudes concurrentemente mientras gestionan recursos eficientemente
Implementar pipelines de procesamiento de datos
Diseña pipelines fan-out/fan-in para procesar grandes conjuntos de datos en paralelo con manejo adecuado de errores y cancelación
Depurar condiciones de carrera
Identifica y corrige bugs de concurrencia en código Go existente usando patrones de sincronización adecuados y herramientas de detección de carreras
试试这些提示
Muéstrame cómo crear un worker pool en Go que procese 100 trabajos con 5 workers concurrentes
Escribe un servidor Go con apagado gradual que maneje señales SIGTERM y espere a que las solicitudes en curso se completen
Crea un pipeline fan-out/fan-in en Go que procese elementos a través de 3 etapas con 5 workers por etapa
Revisa este código Go e identifica posibles fugas de goroutines, luego muéstrame cómo corregirlas usando cancelación de contexto
最佳实践
- Usar siempre context.Context para cancelación y deadlines en operaciones concurrentes
- Cerrar canales solo desde el lado del emisor para evitar panics
- Preferir canales sobre mutexes para comunicación entre goroutines
- Usar sync.WaitGroup o errgroup para esperar la finalización de goroutines
避免
- Usar time.Sleep para sincronización en lugar de primitivas adecuadas como canales o WaitGroup
- Cerrar canales desde el lado del receptor lo que causa panic
- Olvidar verificar ctx.Done() lo que lleva a fugas de goroutines
- Compartir memoria entre goroutines sin sincronización adecuada