From systems-programming
Master Go concurrency with goroutines, channels, sync primitives, and context. Use for building concurrent Go applications, worker pools, or debugging race conditions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/systems-programming:go-concurrency-patternsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Production patterns for Go concurrency including goroutines, channels, synchronization primitives, and context management.
Production patterns for Go concurrency including goroutines, channels, synchronization primitives, and context management.
| Primitive | Purpose |
|---|---|
goroutine | Lightweight concurrent execution |
channel | Communication between goroutines |
select | Multiplex channel operations |
sync.Mutex | Mutual exclusion |
sync.WaitGroup | Wait for goroutines to complete |
context.Context | Cancellation and deadlines |
Don't communicate by sharing memory;
share memory by communicating.
package main
import (
"context"
"fmt"
"sync"
"time"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
results := make(chan string, 10)
var wg sync.WaitGroup
// Spawn workers
for i := 0; i < 3; i++ {
wg.Add(1)
go worker(ctx, i, results, &wg)
}
// Close results when done
go func() {
wg.Wait()
close(results)
}()
// Collect results
for result := range results {
fmt.Println(result)
}
}
func worker(ctx context.Context, id int, results chan<- string, wg *sync.WaitGroup) {
defer wg.Done()
select {
case <-ctx.Done():
return
case results <- fmt.Sprintf("Worker %d done", id):
}
}
Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.
npx claudepluginhub wshobson/agents --plugin systems-programmingImplements Go concurrency patterns using goroutines, channels, sync primitives, and context for building concurrent apps, worker pools, pipelines, and debugging race conditions.
Master Go concurrency patterns including goroutines, channels, sync primitives, and context. Useful for building concurrent apps, worker pools, pipelines, or debugging race conditions.
Provides code examples for Go goroutines, channels (unbuffered, buffered, directional, closing), select statements, and sync patterns when writing concurrent Go code.