Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Master Go concurrency with goroutines, channels, sync primitives, and context. Use when building concurrent Go applications, implementing worker pools, or debugging race conditions.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-16 | ✓→✗ | ▼ Worse | -12% | 0% |
| case-17 | ✓→✓ | = Same ✓ | 31% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 12% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 16% | 0% |
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.gopackage 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.
Other measured skills in the registry, with their headline benchmark lift.