go-concurrency
Go Concurrency Patterns
Master Go's concurrency model with goroutines, channels, and synchronization for building efficient concurrent systems.
Core Patterns
Goroutines
func main() {
go sayHello() // Launch goroutine
time.Sleep(1 * time.Second) // Wait for goroutine
}
func sayHello() {
fmt.Println("Hello from goroutine")
}
Channels
func main() {
messages := make(chan string)
go func() {
messages <- "ping"
}()
msg := <-messages
fmt.Println(msg)
}
Worker Pool
func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
fmt.Println("worker", id, "processing job", j)
time.Sleep(time.Second)
results <- j * 2
}
}
func main() {
jobs := make(chan int, 100)
results := make(chan int, 100)
// Start workers
for w := 1; w <= 3; w++ {
go worker(w, jobs, results)
}
// Send jobs
for j := 1; j <= 5; j++ {
jobs <- j
}
close(jobs)
// Collect results
for a := 1; a <= 5; a++ {
<-results
}
}
Select Statement
select {
case msg1 := <-channel1:
fmt.Println("Received", msg1)
case msg2 := <-channel2:
fmt.Println("Received", msg2)
case <-time.After(1 * time.Second):
fmt.Println("Timeout")
}
Best Practices
- Don't communicate by sharing memory; share memory by communicating
- Close channels from sender side
- Use buffered channels wisely
- Handle goroutine cleanup
- Use context for cancellation
- Avoid goroutine leaks
Resources
More from spjoshis/claude-code-plugins
excel-analysis
Master Excel for data analysis with pivot tables, formulas, Power Query, and advanced Excel techniques.
50flutter-performance
Optimize Flutter app performance with widget rebuilds, memory management, rendering optimization, and profiling techniques. Achieve smooth 60fps rendering.
10bloc-pattern
Master BLoC (Business Logic Component) pattern for Flutter with flutter_bloc. Learn events, states, testing, and advanced patterns for scalable apps.
9product-backlog-management
Master product backlog management with prioritization frameworks, refinement techniques, estimation, and continuous backlog optimization for maximum value delivery.
6laravel-development
Master Laravel 11 with Eloquent ORM, routing, middleware, queues, testing, and modern PHP development patterns.
6rxjs-patterns
Master RxJS in Angular with observables, operators, subjects, error handling, and reactive patterns for building responsive applications.
5